Como localizo o número total de linhas retornadas db_query()
para a SELECT
instrução ou o equivalente a mysql_num_rows()
?
Estou usando o MySQL.
Se você consultar a db_result()
documentação do 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;
}
Também vi que você poderia fazer isso no Drupal 6:
$num_rows = db_result(
db_query("SELECT COUNT(*) FROM {node} WHERE type = '%s'", $type->type)
);
Parece que você poderia simplesmente fazer:
// Execute your query.
$result = db_query($your_query);
// Use mysql_num_rows() on the result set.
$num_rows = mysql_num_rows($result);
db_query()
retorna um objeto e você pode verificar o número total de linhas usando$res->num_rows
.fonte
Depende se você precisa do número de linhas antes de executar o loop no conjunto de resultados ou não.
Se você precisar antes, geralmente faz uma
SELECT COUNT(*)
consulta com os mesmos argumentos da sua primeira consulta e usa-adb_result()
para recuperá-la.Se você precisar depois, basta colocar uma variável que você incrementará durante seu loop:
fonte
Para o Drupal 7, você pode usar
fonte
rowCount()
é apenas para consultas que afetam linhas como INSERT / UPDATE / DELETE. Veja a discussão em drupal.org/node/1286238