如何使用带循环计数器的while循环来回显else语句?

时间:2012-05-10 20:43:14

标签: php echo oci

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

以下内容非常有效,除了显示无的最后一个else语句。这部分不起作用。基本上我想显示我的数据行,如果不存在,抛出一条消息说“无”。

我做了一些阅读,它看起来像一个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>";
    }
}

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

通过获取第一行并检查它是否为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));
    }
}

答案 2 :(得分:0)

我认为此引用可以帮助您使用函数oci_fetch_assoc: http://php.net/manual/en/function.oci-fetch-assoc.php#100304

答案 3 :(得分:0)

只有当你的“$ myvariable”中出现了某些内容时,你的while语句才会运行,因此if语句是多余的,在这种情况下你的其他内容是无关紧要的。如果你想按照你的想法运行某些东西,你可以做“oci_fetch_all()”然后循环并执行你的if / else。