$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
Si 'table' n'a pas de lignes. Quel est le moyen le plus simple de vérifier cela?
Vous pouvez utiliser mysql_num_rows ($ results) pour vérifier si 0 lignes ont été renvoyées, ou utiliser cette alternative plus rapide:
$query = "SELECT COUNT(*) AS total FROM table";
$results = mysql_query($query, $connection);
$values = mysql_fetch_assoc($results);
$num_rows = $values['total'];
La réponse de Jeremy Ruten ci-dessus est bonne et s'exécute rapidement; par contre, il ne vous donne que le nombre de lignes et rien d’autre (si vous voulez les données de résultat, vous devez interroger à nouveau la base de données). Ce que j'utilise:
// 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
}
Sinon, vous pouvez simplement vérifier si le résultat de mysql_fetch_assoc est faux.
$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
$Row = mysql_fetch_assoc($results);
if ($Row == false)
{
$Msg = 'Table is empty';
}
Une chose que j'ai remarquée et qui a été omise est le fait que la requête risque de ne pas aboutir. Vous devez donc vérifier si la variable $ results est définie. Je vais utiliser la réponse donnée par yjerem à titre d'exemple.
$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'];
}