Nejste přihlášen(a)
Stránky: 1
Téma zavřeno
Nazdárek,
docela by mě zajímalo, proč mají metody fetchAll u query a applyLimit u dataSource prohozené pořadí parametrů? Mě se to zdá hodně matoucí nebo je to záměr?
Bernard
Lidé nechtějí od života žádat mnoho, protože se bojí prohry. Kdo
však touží svádět dobrý boj, musí pohlížet na svět jako na nesmírný
poklad, který tu čeká, aby byl dobyt.
– Paulo Coelho –
Kterou verzi preferovat?
Jsem pro limit offset.
Častěji asi pouze limituji takže LIMIT
OFFSET
Online
Limit, Offset bude asi nejlepší.
Lidé nechtějí od života žádat mnoho, protože se bojí prohry. Kdo
však touží svádět dobrý boj, musí pohlížet na svět jako na nesmírný
poklad, který tu čeká, aby byl dobyt.
– Paulo Coelho –
LIMIT, OFFSET
Nette 2.0 alpha2 Namespaced for PHP 5.3 // http://westrem.posterous.com
A používá vůbec někdo limit a offset u fetchAll()?
Já u Paginatoru ano.
Lidé nechtějí od života žádat mnoho, protože se bojí prohry. Kdo
však touží svádět dobrý boj, musí pohlížet na svět jako na nesmírný
poklad, který tu čeká, aby byl dobyt.
– Paulo Coelho –
Jenže u paginatoru by mělo být omezení už v SQL dotazu.
Já používám konstrukci z doplňku:
...
$paginator = $vp->getPaginator();
$paginator->itemsPerPage = 15;
$paginator->itemCount = count($items);
...
//příklad jak omezit třeba výběr řádků ze SQL pro danou stránku (s dibi)
$result = dibi::query('SELECT ... ORDER BY ...');
$rows = $result->fetchAll( $paginator->offset, $paginator->itemsPerPage );
Do SQL dotazu by to šlo taky přímo hodit, ale musel bych si udělat druhý SQL dotaz na získání celkového počtu záznamů.
Lidé nechtějí od života žádat mnoho, protože se bojí prohry. Kdo
však touží svádět dobrý boj, musí pohlížet na svět jako na nesmírný
poklad, který tu čeká, aby byl dobyt.
– Paulo Coelho –
No to je úplně blbě. Příklad jsem upravil.
Pro zjištění celkové počtu záznamů lze použít COUNT(*) nebo SQL_CALC_FOUND_ROWS v MySQL.