Проверка, вернул ли mysql_query что-нибудь или нет - PullRequest
20 голосов
/ 18 октября 2008
$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);

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

Ответы [ 5 ]

31 голосов
/ 18 октября 2008

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

// 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 (e.g. with mysql_fetch_assoc())
} else {
   // no data from query, react accordingly
}
14 голосов
/ 18 октября 2008

Вы можете использовать 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'];
8 голосов
/ 19 октября 2008

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

$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
$Row = mysql_fetch_assoc($results);
if ($Row == false)
{
  $Msg = 'Table is empty';
}
0 голосов
/ 21 июля 2010

Одна вещь, которую я заметил, что была пропущена, это то, что запрос может не быть успешным, поэтому вам нужно проверить, установлена ​​ли переменная $ 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'];
}
0 голосов
/ 18 октября 2008

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

$x = 1;
$query = mysql_query("SELECT * FROM table");
while($row = mysql_fetch_assoc($query))
{
  $x++;
}
if($x == 1)
{
  //No rows
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...