$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 }