![](/img/trans.png)
[英]PHP - Multiple while($row = mysql_fetch_array($variable)) { } ERRORS
[英]How to check if results on while($row = mysql_fetch_array in PHP
我試圖找出如何處理這是沒有返回結果,我將如何編碼?
while($ row = mysql_fetch_array($ Result))
所以,如果有結果:打印出來
否則:顯示一個鏈接
http://ca3.php.net/manual/en/function.mysql-num-rows.php
if(mysql_num_rows($result) > 0) {
while($row = mysql_fetch_array($result)) { ... }
} else {
// show link
}
您可以使用mysql_num_rows()
告訴您找到了多少結果。 使用簡單的if-statement
,您可以確定要采取的操作。
if (mysql_num_rows($result) > 0) {
// do while loop
} else {
// show link
}
其他人建議使用mysql_num_rows()
但您應該知道只有在使用緩沖查詢時該函數才有效。 如果使用mysql_unbuffered_query()
查詢,則結果中的行數不可用。
我會使用一個簡單的標志變量:
$found_row = false;
while ($row = mysql_fetch_array($result)) {
$found_row = true;
. . .
}
if ($found_row == false) {
// show link
}
重復地將$found_row
設置$found_row
true似乎是多余的,但是為變量分配文字值應該是任何語言中的微不足道的費用。 當然,與獲取和處理SQL查詢結果相比,它很小。
使用更短的語法而不會無關緊要的mysql_num_rows
來節省處理器時間:
if($result) {
// return db results
} else {
// no result
}
我可能已經弄明白了:
if (!($row = mysql_fetch_array($descResult)))
{
echo "<tr><td>Add Link</td></tr>";
}
這可以在沒有mysql_num_rows()或附加(標志)變量的情況下完成
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)) );
}
但它復制了實際的fetch命令(if語句中的一個和while子句中的一個)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.