Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] dowolna tablica w paginatorze.
Forum PHP.pl > Forum > PHP > Frameworki
istrd
Witam,
Czy mogę jako adapter paginatora użyć dowolnej tablicy. Tablica jest połączeniem rekordów z dwóch tabel. W manualu jest tak:
  1. $adapter = new Zend_Paginator_Adapter_DbSelect($db->select()->from('posts'));
  2. $adapter->setRowCount(
  3. $db->select()
  4. ->from(
  5. 'item_counts',
  6. Zend_Paginator_Adapter_DbSelect::ROW_COUNT_COLUMN => 'post_count'
  7. )
  8. )
  9. );
  10.  
  11. $paginator = new Zend_Paginator($adapter);


Ale nie chce Adaptera DbSecect. Da się jakoś rozwiązać ten problem?
Pilsener
No pewnie. Użyć adaptera Zend_Paginator_Adapter_Array.
piotr.pasich
Tylko z Arrayem jest problem wydajnościowy - najpierw pobiera całość danych i dopiero później paginuje. DB - wysyła dwa zapytania do bazy - jedno pobiera łączną ilość rekordów, a drugie zapytanie z offset i limit.

Array jest dość niebezpieczny przy bardzo dużych porcjach danych - np. tabelki po kilka milionów rekordów mogą spowodować przekroczenie limitu pamięci.
Pilsener
Zgadza się, ale jeśli Istrd ma już tą tablicę zrzuconą z bazy i chce ją tylko paginować to pewnie zdaje sobie z tego sprawę wink.gif
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.