Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [zendframework] pagination
Forum PHP.pl > Forum > PHP > Frameworki
stachuf11
witam
niedługo działam w zend framework i sta te laickie pytania

chcę użyć pagewania wyników
kod poniżej

  1. $select="SELECT tbil.BillingDataNadania, tbil.BillingID, tprz.BOK_skrot, rdok.nazwa_rodzaj_dokument, pliki.PlikNazwa FROM dbo.Table_Billing AS tbil
  2. JOIN LaczeV5.dbo.pliki AS pliki ON pliki.BillingID=tbil.BillingID
  3. JOIN dbo.table_przypisanie AS tprz ON tbil.BillingID=tprz.BillingID
  4. JOIN dbo.Table_Rodzaj_Dokument rdok ON rdok.id_rodzaj_dokument= tprz.Id_Rodzaj_Dokument
  5.  
  6.  
  7. WHERE (tbil.BillingDataNadania >='".$data_od."') AND (tbil.BillingDataNadania <='".$data_do."')
  8. AND tprz.id_oddzial IN (".$str.") AND tprz.id_rodzaj_Dokument IN (".$strdok.")";
  9.  
  10.  
  11.  
  12. $this->view->paginator = Zend_Paginator::factory($dbms->fetchAll($select));
  13. $this->view->paginator->setCurrentPageNumber($page);
  14. $this->view->paginator->setItemCountPerPage(40);
  15.  


ale coś mi suę putaj nie podoba

  1. $this->view->paginator = Zend_Paginator::factory($dbms->fetchAll($select));


polecenie powyżej i tak robi select po wszystkich rekordach wyniku szukania pomijając pageowane, i trzeba długo czekać na wynik z bazy jeśli wyników jest dużo, a dopiero paginator wybiera sobie fragment tego dużego zbioru wyników szukania i wyświetla to na widioku
czy ktoś poda mi prosty przykład uzycia paginatora bo może ja coś źle robię
moim zdaniem to paginatorowi powinno się podać kryteria szukania i nr strony, a on sam powinien poszukać właściwego zakresu wyników, tak jest w symfony
nospor
no przeciez dla paginatora zapodajesz wszystkie rekordy...
$dbms->fetchAll()
smile.gif

Zajrzyj do dokumentacji zenda, tam na przykladach masz wyjasnione jak uzyc paginatora
stachuf11
no własnie to jest złe, że wszystkie rekordy podaje do paginatora, bo jeśłi rekordów jest kilkaset tysięcy to musze dlugo czekac na wynik, a powinno być tak że podaję kryteria, paginator sam sobie wyszuka np 30 rekordów które chce wyswietlić, a numery stron powinien sam sobie policzyć zliczając ilość rekordów po jednej kolumnie np id.
nospor
Cytat
no własnie to jest złe
No a co ja napisalem? Wlasnie ci napisalem ze podajesz wszystkie rekordy a masz tego nie robic. Na stronie zenda masz napisane jak masz to zrobic przy uzyciu zapytania a nie rekordow.

http://framework.zend.com/manual/en/zend.p....usage.dbselect
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.