Jak nastavit prázdnou podmínku při where
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Hafran
- Člen | 121
Zdravím,
mám dotaz v NDB, který kupříkladu vybírá článek podle kategorie.
$this->db->table("article")->where(array("category"=>$category));
Nevím jak to ale udělat, když se rozhodnu že žádnou kategorii nechci vybrat, tedy chci naopak vybrat všechno, vlastně zrušit tu podmínku. Jde nějak udělat aby ta podmínka byla prázdná, netestovala se? Nebo aspoň, aby byla pravdivá vždy, něco jako že $category = ‚*‘, ‚all‘ , ‚is not null‘ nebo cokoliv.
Samozřejmě, že můžu například testovat jestli není $category null a pak změnit ten dotaz, ale to mi příjde zbytečné psaní. U složitějších a často opakovaných dotazů to nechci pořád větvit. :/
- David Matějka
- Moderator | 6445
inline by to slo takto:
$this->db->table("article")->where($category? array("category"=>$category) : array());
ale radsi pouzij vetveni ifem nebo se v tom za chvili ztratis :)