2011-08-20 63 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)纔會評估爲真。