Запрос Zend_Db и подсчет строк без извлечения всего, что было впереди

Я создал свой выбор:

$select = $zdb->select()
              ->from(array("b" => "blogs"),
                     array("id", "active", "updated_by", "title", "synopsis", "create_date", "body"))
              ->join(array("u" => "users"),
                     'b.updated_by = u.id',
                     array("first_name", "last_name"))
              ->where("u.blogger = ?", 1)
              ->where("b.publish_date > ?", '2020-01-01')
              ->where("b.active = ?", 1)
              ->group("b.id")
              ->order("b.publish_date DESC")
              ->limit(5);

и я хочу вывести данные построчно:

$stmt = $db->query($select);

while ($asset = $stmt->fetch()) {
    // do stuff
}

Как я могу проверить наличие строк, не возвращая весь набор результатов?


person Glen Solsberry    schedule 13.10.2010    source источник


Ответы (1)


Используя выбор, который у вас уже есть, что-то подобное должно помочь вам проанализировать каждую запись

$rows = $zdb->fetchAll($select);

foreach($rows as $row){
    ...
}

Чтобы получить значения, вам просто нужно сделать $row['fieldName'], где fieldName - это имя поля в вашей базе данных.

person JF Dion    schedule 14.10.2010
comment
За исключением того, что я не хочу возвращать все обратно, как я предложил в заголовке вопроса. Я хочу знать, сколько строк я могу ожидать с помощью функции stmt. - person Glen Solsberry; 15.10.2010
comment
Единственный другой способ, который я вижу, - это счетчик SELECT (*) с теми же параметрами where и без LIMIT. - person JF Dion; 15.10.2010