¿Cómo encuentro el número total de filas devueltas db_query()
para la SELECT
declaración, o el equivalente de mysql_num_rows()
?
Estoy usando MySQL.
Si nos fijamos en la db_result()
documentación 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;
}
También vi que puedes hacer esto en Drupal 6:
$num_rows = db_result(
db_query("SELECT COUNT(*) FROM {node} WHERE type = '%s'", $type->type)
);
Parece que simplemente podrías hacer:
// Execute your query.
$result = db_query($your_query);
// Use mysql_num_rows() on the result set.
$num_rows = mysql_num_rows($result);
db_query()
devuelve un objeto, y puede verificar el número total de filas usando$res->num_rows
.fuente
Depende de si necesita el número de filas antes de recorrer el conjunto de resultados o no.
Si lo necesita antes, generalmente realiza una
SELECT COUNT(*)
consulta con los mismos argumentos que su primera consulta y la utilizadb_result()
para recuperarla.Si lo necesita después, simplemente ponga una variable que incrementará durante su ciclo:
fuente
Para Drupal 7 puedes usar
fuente
rowCount()
es solo para consultas que afectan a filas como INSERT / UPDATE / DELETE. Vea la discusión en drupal.org/node/1286238