Comment puis-je trouver le nombre total de lignes renvoyées db_query()
pour l' SELECT
instruction, ou l'équivalent de mysql_num_rows()
?
J'utilise MySQL.
Si vous regardez la db_result()
documentation de Drupal 6:
function db_result($result) {
if ($result && mysql_num_rows($result) > 0) {
// The mysql_fetch_row function has an optional second parameter $row
// but that can't be used for compatibility with Oracle, DB2, etc.
$array = mysql_fetch_row($result);
return $array[0];
}
return FALSE;
}
J'ai également vu que vous pouviez le faire dans Drupal 6:
$num_rows = db_result(
db_query("SELECT COUNT(*) FROM {node} WHERE type = '%s'", $type->type)
);
Il semble que vous puissiez simplement faire:
// Execute your query.
$result = db_query($your_query);
// Use mysql_num_rows() on the result set.
$num_rows = mysql_num_rows($result);
db_query()
renvoie un objet et vous pouvez vérifier le nombre total de lignes à l'aide de$res->num_rows
.la source
Cela dépend si vous avez besoin du nombre de lignes avant de boucler sur le jeu de résultats ou non.
Si vous en avez besoin auparavant, vous effectuez généralement une
SELECT COUNT(*)
requête avec les mêmes arguments que votre première requête et utilisezdb_result()
pour la récupérer.Si vous en avez besoin après, mettez simplement une variable que vous incrémenterez pendant votre boucle:
la source
Pour Drupal 7, vous pouvez utiliser
la source
rowCount()
ne concerne que les requêtes qui affectent des lignes telles que INSERT / UPDATE / DELETE. Voir la discussion sur drupal.org/node/1286238