Все, что я действительно хочу знать, это то, возвращал ли мой запрос результаты или нет, но фактическое значение числа строк было бы неплохо.
Пример:
$query = db_select('node', 'n'); $query->fields('n', array('nid', 'title', 'status'));
Вы ищете:
countQuery ()
В вашем примере вы можете использовать:
$query = db_select('node', 'n'); $query->fields('n', array('nid', 'title', 'status')); $num_rows=$query->countQuery()->execute()->fetchField();
для подсчета результатов и их последующего извлечения:
$result=$query->execute();
Вы можете загрузить все свои результаты в массив, используя удобный метод запроса fetchAll(), а затем считать массив как обычно.Это приведет к выполнению только одного запроса:
fetchAll()
$query = db_select('node', 'n'); $query->fields('n', array('nid', 'title', 'status')); $results = $query->execute()->fetchAll(); $count = count($results); foreach ($results as $result) { // ... }
Я думаю, что это более эффективно, попробуйте вместо этого.
$result = db_select('table_name' ,'t'); $result->fields('t')->execute(); $num_of_results = $result->rowCount();