Проверка того, что mysql_query вернула что-либо или нет

$query = "SELECT * FROM `table`"; $results = mysql_query($query, $connection); 

Если «таблица» не имеет строк. Самый простой способ проверить это.

Вы можете использовать mysql_num_rows ($ results), чтобы проверить, были ли возвращены 0 строк или использовать эту более быструю альтернативу:

 $query = "SELECT COUNT(*) AS total FROM table"; $results = mysql_query($query, $connection); $values = mysql_fetch_assoc($results); $num_rows = $values['total']; 

Ответ Джереми Рутена выше хорошо и выполняется быстро; с другой стороны, он дает вам только количество строк и ничего больше (если вы хотите получить данные результата, вам нужно снова запросить базу данных). Что я использую:

 // only ask for the columns that interest you (SELECT * can slow down the query) $query = "SELECT some_column, some_other_column, yet_another_column FROM `table`"; $results = mysql_query($query, $connection); $numResults = mysql_num_rows($results); if ($numResults > 0) { // there are some results, retrieve them normally (eg with mysql_fetch_assoc()) } else { // no data from query, react accordingly } 

В качестве альтернативы вы можете просто проверить, является ли результат mysql_fetch_assoc ложным.

 print("code sample"); $query = "SELECT * FROM `table`"; $results = mysql_query($query, $connection); $Row = mysql_fetch_assoc($results); if ($Row == false) { $Msg = 'Table is empty'; } 

Одна вещь, которую я заметил, была пропущена, заключалась в том, что запрос может не сработать, поэтому вам нужно проверить, установлена ​​ли переменная $ results. В качестве примера я воспользуюсь ответом yjerem.

 $query = "SELECT COUNT(*) AS total FROM table"; $results = mysql_query($query, $connection); if ($results) { // or use isset($results) $values = mysql_fetch_assoc($results); $num_rows = $values['total']; } 

Если вы пройдете через результаты, вы можете иметь счетчик и проверить это.

 $x = 1; $query = mysql_query("SELECT * FROM table"); while($row = mysql_fetch_assoc($query)) { $x++; } if($x == 1) { //No rows }