2011-08-20 19 views
0
<?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"; 
    } 
} 

?> 

左右。PHP mysql_num_rows()的使用JOIN查询

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

+0

如果您的查询未找到任何记录,则返回0.所有其他条件不是必需的。如果需要显示结果,则将if子句放在外部,while循环和循环则导致else部分。 –

+0

谢谢!我没有看到代码中正确的信息流。 –

回答

2

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

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

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

谢谢!我明白为什么我的原始代码现在不能工作。 –

0

如果你的声明无关回来了,while循环将永远不会被输入。 只有在获取了一行时,表达式$row=mysql_fetch_array($sql)才会评估为真。