Zend_Table_Db и Zend_Paginator и Zend_Paginator_Adapter_DbSelect - PullRequest
0 голосов
/ 13 июня 2010

У меня следующий запрос:

$this->select()
 ->where("`name` LIKE ?",'%'.mysql_escape_string($name).'%')

Теперь у меня есть код Zend_Paginator:

        $paginator = new Zend_Paginator(
                // $d is an instance of Zend_Db_Select
                new Zend_Paginator_Adapter_DbSelect($d)
        );      

        $paginator->getAdapter()->setRowCount(200);

        $paginator->setItemCountPerPage(15)
                ->setPageRange(10)
                ->setCurrentPageNumber($pag);

        $this->view->data = $paginator;

Как вы видите, я передаю данные в представление, используя $this->view->data = $paginator Раньше у меня не было $paginator->getAdapter()->setRowCount(200);, я мог определить, есть ли у меня какие-либо данные, что я имею в виду под данными, если у запроса есть какие-то результаты, поэтому, если у запроса есть некоторые результаты, я показываю его пользователю, если нет, Мне нужно показать им сообщение (без результатов!)

Но в данный момент я не знаю, как я могу определить это, поскольку count($paginator) больше не работает из-за $paginator->getAdapter()->setRowCount(200);, и я использую это, потому что Zend_Paginator занимает около 7 секунд для подсчета страницы число.

Так, как я могу найти, если мой запрос имеет какие-либо результаты?

1 Ответ

0 голосов
/ 14 июня 2010

Зачем вы устанавливаетеRowCount () на магическое число?Если какой-либо метод Z_P, используемый для определения общего числа строк, занимает много времени, вы можете переопределить его таким образом, но вы хотите вычислить фактическое значение, не так ли?

В большинстве случаев Z_P должен автоматически получить правильный номер (внутренне, через подзапрос).Если этот подзапрос занимает слишком много времени, вы можете попробовать создать свой собственный Zend_Db_Select для выполнения подсчета и передать его в setRowCount ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...