如何在PHP中检查while($row=mysql\u fetch\u数组)上的结果
我正在试图找出如何处理这个问题,如果没有返回结果,我将如何编写代码 while($row=mysql\u fetch\u数组($Result)) 就像有结果一样:打印出来 else:显示一个链接,您可以使用该链接告诉您找到了多少个结果。使用一个简单的如何在PHP中检查while($row=mysql\u fetch\u数组)上的结果,php,mysql,Php,Mysql,我正在试图找出如何处理这个问题,如果没有返回结果,我将如何编写代码 while($row=mysql\u fetch\u数组($Result)) 就像有结果一样:打印出来 else:显示一个链接,您可以使用该链接告诉您找到了多少个结果。使用一个简单的if语句,您可以确定要采取的操作 if (mysql_num_rows($result) > 0) { // do while loop } else { // show link } 我可能已经弄明白了: if (!($row =
if语句
,您可以确定要采取的操作
if (mysql_num_rows($result) > 0) {
// do while loop
} else {
// show link
}
我可能已经弄明白了:
if (!($row = mysql_fetch_array($descResult)))
{
echo "<tr><td>Add Link</td></tr>";
}
if(!($row=mysql\u fetch\u数组($descResult)))
{
回显“添加链接”;
}
其他人建议使用mysql\u num\u rows()
,但您应该知道,只有使用缓冲查询时,该函数才有效。如果使用mysql\u unbuffered\u query()
进行查询,则结果中的行数不可用
我将使用一个简单的标志变量:
$found_row = false;
while ($row = mysql_fetch_array($result)) {
$found_row = true;
. . .
}
if ($found_row == false) {
// show link
}
重复将
$found\u row
设置为true似乎是多余的,但在任何语言中,为变量指定一个文本值都应该是微不足道的开销。当然,与获取和处理SQL查询结果相比,这是很小的。这可以在没有mysql\u num\u rows()或附加(flag)变量的情况下完成
但它复制了实际的fetch命令(一个在if语句中,一个在while子句中)。使用更短的语法,而不使用不重要的
mysql\u num\u行
以节省处理器时间:
if($result) {
// return db results
} else {
// no result
}
只是想知道-如果函数失败或没有结果,那么该函数的结果值是否总是错误的?如果是,可以忽略大于0的值(我一直都有,但从未深入考虑过可能的返回值)+1“返回值:成功时结果集中的行数,失败时为FALSE。”如果确实没有结果,这可能会返回
0
,但是如果函数失败,则返回false
。非常好。工作得很好,比我发现的要好。语言应该有一个结构来避免这个问题,因为它是如此常见。类似于while($cond){$action}else{$code}
@Mark:Python有一个while/else构造。
if ( false===($row=mysql_fetch_array($result, MYSQL_ASSOC)) ) {
echo 'no rows in result set';
}
else {
do {
echo $row['X'];
} while ( false===($row=mysql_fetch_array($result, MYSQL_ASSOC)) );
}
if($result) {
// return db results
} else {
// no result
}