php while()循环if / else似乎不起作用

时间:2011-03-27 07:39:08

标签: php mysql if-statement while-loop

我一直很困惑为什么这不起作用!我的查询在所有方面都执行得非常好,但是当我在$ row值上添加if检查时,echo消息按预期进行(如果没有结果),但是当我的查询中存在匹配时,else将不会启动???为什么这不起作用?有人请放松我的痛苦,让我直截了当!

$row = mysql_fetch_array($result);
if (!$row) {
    echo "Sorry brah. Nothing matches your search criteria.";
} else {

$i = 1;
while($row = mysql_fetch_array($result)) {
    echo "$i - " . $row['first_name'] . " " .  $row['last_name'] . " - " .   $row['address'] . "<br />";
$i++;
    } 
}

2 个答案:

答案 0 :(得分:9)

$row = mysql_fetch_array($result);  // this fetches the first row your result
...

在while循环中,您再次从结果中获取行。如果您在结果中只有一行使用

,这将无效
if (mysql_num_rows($result) == 0) {
    echo "Sorry brah. Nothing matches your search criteria.";
} else {
    $i = 1;
    while($row = mysql_fetch_array($result)) {
        echo "$i - " . $row['first_name'] . " " .  $row['last_name'] . " - " .   $row['address'] . "<br />";
        $i++;
    } 
}

答案 1 :(得分:3)

在if语句中尝试mysql_num_rows($result)==0