如何使用带有计数器的 while 循环来回显其他语句


How do I use a while loop with counter for echoing else statement?

无论如何,我都不是全职PHP程序员,但想知道最有效的方法是什么? 我正在运行抓取以获取要在页面上显示的一些数据。 查询结果通常包含多行。

下面的效果很好,除了最后一个 else 语句显示 noe。 这部分不起作用。 基本上,我想显示我的数据行,如果不存在,则抛出一条消息说"无"。

我做了一些阅读,看起来使用 while 循环 + 多个结果集,您不能简单地使用其他标准......两者都带有 !empty 或 isset。

有人提到做柜台吗? 这将是实现这一目标的最佳方法。 欢迎任何建议,因为我将来可能会添加更多这样的数据,并希望以正确的方式进行。

谢谢!

while($myvariable = oci_fetch_assoc($stmt))
{
if(!empty($myvariable))
    {
    echo "<tr><th>DISPLAY FIELD NAME:</th><td>" . $myvariable['myrowdata'] . </td></tr>";
    }
    else 
    {
    echo "<tr><th>DISPLAY FIELD NAME:</th><td>None</td></tr>";
    }
}

> 查看 php 手册上的oci_fetch_assoc。此函数通常在循环中调用,直到它返回 FALSE,指示不再存在行。因此,您的 while 循环中不需要任何其他 if 或其他。

循环之前通过获取第一行并检查它是否不是 FALSE 来执行检查;然后,如果不是,则将其馈送到循环并在循环结束时获取下一行。 这被称为"启动循环",并不少见。

if(!($myvariable = oci_fetch_assoc($stmt))) {
    echo "<tr><th>DISPLAY FIELD NAME:</th><td>None</td></tr>";
} else {
    while($myvariable) {
        echo "<tr><th>DISPLAY FIELD NAME:</th><td>" . $myvariable['myrowdata'] . </td></tr>";
        $myvariable = oci_fetch_assoc($stmt));
    }
}
我认为

这个参考可以帮助你使用函数oci_fetch_assoc:http://php.net/manual/en/function.oci-fetch-assoc.php#100304

只有当你在"$myvariable"中得到一些东西时,你的while语句才会运行,因此你的if语句是多余的,在这种情况下你的else是无关紧要的。如果你想按照你正在思考的思路运行一些东西,你可以做"oci_fetch_all()",然后循环并做你的if/else。