Использование PHP mysql_num_rows () по запросу INNER JOIN - PullRequest
0 голосов
/ 21 августа 2011
<?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 ]

2 голосов
/ 21 августа 2011

Цикл while(false) { } никогда не будет выполняться, и это то, что у вас есть, когда нет строк. Вы должны поставить чек на $row_count вне цикла while:

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

else
{
  while ($row = mysql_fetch_array($sql)) { ... }
}
0 голосов
/ 21 августа 2011

Если в вашем утверждении ничего не возвращено, цикл while никогда не будет введен. Выражение $row=mysql_fetch_array($sql) будет иметь значение true, только если была выбрана строка.

...