tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Sjednocení pořadí parametrů fetchAll a applyLimit

před 9 lety

Bernard Williams
Člen | 207

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

před 9 lety

David Grudl
Nette Core | 6806

Kterou verzi preferovat?

před 9 lety

phx
Člen | 652

Jsem pro limit offset.

před 9 lety

Milo
Nette Core | 1119

Častěji asi pouze limituji takže LIMIT OFFSET

před 9 lety

Bernard Williams
Člen | 207

Limit, Offset bude asi nejlepší.

před 9 lety

westrem
Člen | 398

LIMIT, OFFSET

před 9 lety

David Grudl
Nette Core | 6806

A používá vůbec někdo limit a offset u fetchAll()?

před 9 lety

Bernard Williams
Člen | 207

Já u Paginatoru ano.

před 9 lety

David Grudl
Nette Core | 6806

Jenže u paginatoru by mělo být omezení už v SQL dotazu.

před 9 lety

Bernard Williams
Člen | 207

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ů.

před 9 lety

David Grudl
Nette Core | 6806

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.