Vyhladavnie v DB podla len niektorych where
- Sator
- Člen | 15
Robim vyhladavanie v DB podla zadanych udajov z Formy, keby ich nebolo vela
tak by som aj manualne napisal vsetky moznosti ale policok je asi 20 a to by
bolo vela moznosti.
Da sa nejako priamo v
$this->template->search = $this->context->createReality()->where(array('Mesto'=>$Mesto, 'Ulica'=>$Ulica));
spravit aby zobralo len udaje ktore dostane a ostatne ignorovalo? Lebo ak
pridam do Mesto mesto a do Ulica dam NULL, tak mi samozrejme nic v DB nenajde,
kedze hlada kombinaciu mesto a NULL.
Alebo ak je lepsi sposob ako vyhladavat v DB tak mi prosim poradte.
- Sator
- Člen | 15
Tak uz nic, napisal som si vlastny vyhladavac.
Ale narazil som pri nom na iny problem, je mi jasne ako ziskat z tabulky data, ktore sa rovnaju niecomu, najst min/max a podobne, ale nikde nevidim ako zobrat vsetky vacsie/mensie ako urcita hodnota, ci zas mi mam pisat aj na to funkciu, nieje jednoduchy prikaz na to?
- duke
- Člen | 650
Metodu where
můžeš volat vícekrát a tak postupně
přidávat kriteria vyhledávání:
$search = $this->context->createReality();
foreach ($criteria as $key => $value) {
if ($value !== NULL) {
$search->where($key, $value);
}
}
Případně si můžeš asociativní pole, které where
předáváš předpřipravit (vyfiltrovat položky s NULL atp.):
$search = $this->context->createReality()->where(array_filter($criteria, function ($value) {
return $value !== NULL;
}));