Как найти общее количество возвращаемых строк в db_query()
для SELECT
заявления, или эквивалент mysql_num_rows()
?
Я использую MySQL.
Если вы посмотрите db_result()
документацию для 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;
}
Я также видел, что вы можете сделать это в Drupal 6:
$num_rows = db_result(
db_query("SELECT COUNT(*) FROM {node} WHERE type = '%s'", $type->type)
);
Похоже, вы могли бы просто сделать:
// Execute your query.
$result = db_query($your_query);
// Use mysql_num_rows() on the result set.
$num_rows = mysql_num_rows($result);
db_query()
возвращает объект, и вы можете проверить общее количество строк, используя$res->num_rows
.источник
Это зависит от того, нужно ли вам количество строк перед циклом набора результатов или нет.
Если вам это нужно раньше, вы обычно делаете
SELECT COUNT(*)
запрос с теми же аргументами, что и первый запрос, и используете егоdb_result()
для его получения.Если вам это нужно после, просто поместите переменную, которую вы будете увеличивать во время цикла:
источник
Для Drupal 7 вы можете использовать
источник
rowCount()
только для запросов, которые влияют на строки, такие как INSERT / UPDATE / DELETE. Смотрите обсуждение на drupal.org/node/1286238