Есть ли способ узнать, сколько строк в результатах SelectQuery в Drupal 7? - PullRequest
0 голосов
/ 13 декабря 2011

Все, что я действительно хочу знать, это то, возвращал ли мой запрос результаты или нет, но фактическое значение числа строк было бы неплохо.

Пример:

$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title', 'status'));

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

Вы ищете:

countQuery ()

В вашем примере вы можете использовать:

$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title', 'status'));
$num_rows=$query->countQuery()->execute()->fetchField();

для подсчета результатов и их последующего извлечения:

$result=$query->execute();
1 голос
/ 13 декабря 2011

Вы можете загрузить все свои результаты в массив, используя удобный метод запроса fetchAll(), а затем считать массив как обычно.Это приведет к выполнению только одного запроса:

$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title', 'status'));
$results = $query->execute()->fetchAll();

$count = count($results);

foreach ($results as $result) {
  // ...
}
0 голосов
/ 04 июня 2014

Я думаю, что это более эффективно, попробуйте вместо этого.

$result = db_select('table_name' ,'t');
$result->fields('t')->execute();
$num_of_results = $result->rowCount();
...