我不是一个全职的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>";
}
}
答案 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。