2009-11-02 8 views
3

J'utilise actuellement ezSQL, que je crois être un excellent wrapper SQL. J'ai été chargé d'ajouter dans la pagination que nous pouvons simplement laisser tomber. Zend has one, qui semble fonctionner, car il est vaguement couplé avec le reste de Zend. Je retourne un tableau avec ezSQL, ala:Zend Pagination avec tableau

$results = $db->get_results("SELECT * FROM table", ARRAY_A); 

puis déplacer cela dans la paginator:

$paginator = Zend_Paginator::factory($results); 

Si je var_dump($paginator), je vois les valeurs indiquées de la requête. Cependant, si je echo $paginator->pageCount), j'obtiens NULL. Quel est le problème?

Malheureusement, passer d'ezSQL à Zend_DB est essentiellement impossible pour notre groupe, donc c'est hors de question.

EDIT: Sortie de print_r($paginator):

Zend_Paginator Object 
(
    [_cacheEnabled:protected] => 1 
    [_adapter:protected] => Zend_Paginator_Adapter_Array Object 
     (
      [_array:protected] => Array 
       (
        [0] => Array 
         (
          [first_name] => Doug 
          [last_name] => Lawrence 
          [avatar] => Doug_Lawrence.png 
          [updated_by] => 14306 
          [id] => 413 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-29 12:57:52 
          [publish_date] => 10/29/09 
         ) 

        [1] => Array 
         (
          [first_name] => Jason 
          [last_name] => Lewis 
          [avatar] => Jason.Lewis.jpg 
          [updated_by] => 13547 
          [id] => 411 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-25 09:19:48 
          [publish_date] => 10/25/09 
         ) 

        [2] => Array 
         (
          [first_name] => David 
          [last_name] => Bowman 
          [avatar] => David_Bowman.png 
          [updated_by] => 13564 
          [id] => 409 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-24 15:13:13 
          [publish_date] => 10/24/09 
         ) 

        [3] => Array 
         (
          [first_name] => David 
          [last_name] => Bowman 
          [avatar] => David_Bowman.png 
          [updated_by] => 13564 
          [id] => 410 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-24 15:15:48 
          [publish_date] => 10/24/09 
         ) 

        [4] => Array 
         (
          [first_name] => Greg 
          [last_name] => Morris 
          [avatar] => GKMorris.png 
          [updated_by] => 13555 
          [id] => 408 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-24 10:21:14 
          [publish_date] => 10/24/09 
         ) 

        [5] => Array 
         (
          [first_name] => Thom 
          [last_name] => Rainer 
          [avatar] => Thom_Rainer.jpg 
          [updated_by] => 13560 
          [id] => 405 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-23 06:53:43 
          [publish_date] => 10/23/09 
         ) 

        [6] => Array 
         (
          [first_name] => David 
          [last_name] => Bowman 
          [avatar] => David_Bowman.png 
          [updated_by] => 13564 
          [id] => 406 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-23 16:20:33 
          [publish_date] => 10/23/09 
         ) 

        [7] => Array 
         (
          [first_name] => Tom 
          [last_name] => Harper 
          [avatar] => 1225910432_63 
          [updated_by] => 10843 
          [id] => 402 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-22 11:17:16 
          [publish_date] => 10/22/09 
         ) 

        [8] => Array 
         (
          [first_name] => Jerome 
          [last_name] => Daley 
          [avatar] => Jerome_Daley.png 
          [updated_by] => 13554 
          [id] => 403 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-22 14:06:31 
          [publish_date] => 10/22/09 
         ) 

        [9] => Array 
         (
          [first_name] => Mark 
          [last_name] => Howell 
          [avatar] => Mark_Best.png 
          [updated_by] => 13561 
          [id] => 404 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-22 21:44:51 
          [publish_date] => 10/22/09 
         ) 

        [10] => Array 
         (
          [first_name] => Margaret 
          [last_name] => Marcuson 
          [avatar] => Marcuson.png 
          [updated_by] => 14398 
          [id] => 401 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-21 18:21:55 
          [publish_date] => 10/21/09 
         ) 

        [11] => Array 
         (
          [first_name] => Barry 
          [last_name] => Winders 
          [avatar] => Barry_Winders.png 
          [updated_by] => 13552 
          [id] => 400 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-20 20:08:36 
          [publish_date] => 10/20/09 
         ) 

        [12] => Array 
         (
          [first_name] => Stephen 
          [last_name] => Gray 
          [avatar] => Stephen_Gray.png 
          [updated_by] => 13556 
          [id] => 399 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-20 09:59:16 
          [publish_date] => 10/20/09 
         ) 

        [13] => Array 
         (
          [first_name] => Alan 
          [last_name] => Chandler 
          [avatar] => Alan_Chandler.png 
          [updated_by] => 13549 
          [id] => 398 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-19 12:03:07 
          [publish_date] => 10/19/09 
         ) 

        [14] => Array 
         (
          [first_name] => Mark 
          [last_name] => Howell 
          [avatar] => Mark_Best.png 
          [updated_by] => 13561 
          [id] => 396 
          [title] => 
          [synopsis] => 
          [create_date] => 2009-10-17 12:30:16 
          [publish_date] => 10/17/09 
         ) 

       ) 

      [_count:protected] => 15 
     ) 

    [_currentItemCount:protected] => 
    [_currentItems:protected] => 
    [_currentPageNumber:protected] => 1 
    [_filter:protected] => 
    [_itemCountPerPage:protected] => 5 
    [_pageCount:protected] => 3 
    [_pageRange:protected] => 10 
    [_pages:protected] => 
    [_view:protected] => 
) 
+0

? Combien de résultats avez-vous? Pouvez-vous jeter un print_r de votre variable ici (en rédigeant des informations sensibles bien sûr)? – Zak

Répondre

4

Comme l'a écrit Zak, vous manquez

$paginator->setItemCountPerPage(10); 
$paginator->setCurrentPageNumber(1); 

que vous pouvez créer un script de vue pour rendre les contrôles paginateur et les éléments de la paginateur.

Que vous devez appeler

$paginator->getPages()->pageCount 

si vous ne l'utilisez Zend_View et il est paginatorControl aide de vue. A quoi correspondent les résultats de pagination par page?

+1

Il y a construit par défaut pour les deux. Et cela n'explique toujours pas pourquoi '$ paginator-> pageCount' renvoie' NULL'. –

+2

C'est parce que vous devez appeler $ paginator-> getPages() -> pageCount –

+0

Intéressant ... ce bit est seulement parlé par rapport aux modèles smarty, mais apparemment, s'applique ailleurs. Points à vous monsieur. –