用于INNER JOIN查询的PHP mysql_num_rows()用法

时间:2011-08-20 23:06:41

标签: php mysql inner-join mysql-num-rows

<?php

$sql=mysql_query("SELECT * FROM  table_one INNER JOIN table_two ON table_one.id = table_two.field_id ORDER BY table_one.id ASC LIMIT 0 , 300");
$rowCount=mysql_num_rows($sql);
while($row=mysql_fetch_array($sql)){
    if($rowCount < 1 || $rowCount=="0" || $rowCount == 0 || $rowCount == NULL || $rowCount == false){
        echo "no information retrieved"; 
    }
    else{
        echo "information retrieved";
    }
}

?>

因此,当在if-else语句中设置条件时,我尝试了几种方法来捕获$ rowCount值为0,但它似乎对我不起作用。

我的查询是否需要使用消除空连接的语法,或者如何识别$ rowCount = 0?

2 个答案:

答案 0 :(得分:2)

循环while(false) { }将永远不会执行,这就是没有行时的结果。您必须将$row_count的检查放在while循环之外:

if ($row_count == 0) { ... no information ... }

else
{
  while ($row = mysql_fetch_array($sql)) { ... }
}

答案 1 :(得分:0)

如果您的Statement没有返回任何内容,则永远不会输入while循环。 只有在提取了一行时,表达式$row=mysql_fetch_array($sql)才会计算为真。