[2.1dev] ORDER BY + LIMIT = špatně sestavený dotaz?
- Mysteria
- Člen | 797
Zdravím, mám problém s následujícím dotazem
$this->sf->table($this->tbl)->where('type', $showPunishments)->page($page, $this->itemsPerPage)->order($sort, $order)->fetchAll();
který se vygeneruje jako
SELECT *
FROM `banlist`
WHERE (`type` IN (0, 1, 2, 3, 4, 5, 6, 7, 9, 8))
ORDER BY `temptime`
LIMIT 10 desc
takže nefunguje (‚desc‘ je špatně za LIMIT místo ORDER BY).
Zkoušel jsem místo page() metody použít i normálně limit(), ale
výsledek je ten samý.
Pokud však vynechám order(), tak se dotaz vygeneruje správně. Zkoušel jsem
i prohazovat pořadí page() a order(), ale ani tak se mi nepodařilo docílit,
aby se dotaz vygeneroval správně.
Samozřejmě, mohl bych použít normálně query() a napsat si to sám, ale zajímalo by mne, jestli někde dělám chybu já, nebo se jedná o bug. :)
Verze PHP: 5.3.26
Verze Nette: Nette Framework 2.1dev (revision c555fb9 released on
2013–07–08)
Díky,
Mysteria
- David Matějka
- Moderator | 6445
druhy a dalsi argumenty funkce neslouzi k urceni smeru, spravny zapis je
->order('foo DESC')
ty argumenty slouzi jako parametry do dotazu, napr
->order('country = ?, country ASC', 'cz');
jelikoz tam vsak nemas parametr, tak se zbyle parametry „nejak“ nahazeji na konec dotazu. ale lepsi chovani by asi bylo, kdyby to vyhodilo exception