Robię formularz wyszukiwania i jeżeli nie zostanie podany parametr to mają zostać wyświetlone wszystkie rekordy, w przeciwnym wypadku mają zostać wyświetlone rekordy o podanej nazwie.
Jeżeli napisze w formularzu where name = $zmienna to jeżeli nie zostanie podany żaden rekord to nic się nie wyświetli. Stąd pytanie czy jest jakas fraza typu "*" np. where name = * która wyświetli wszystkie rekordy? (chodzi mi o to, że jeżeli system nie wykryje parametru to przypisze do niego dana fraze, która pozwoli wyświetlić wszystkie rekordy).
A jeżeli nie jest to możliwe, to zostaje IF i 2 rożne zapytania do bazy ?
0
0
Nie ma takie opcji w where. Ale jak wysyłasz nulla albo pusty string w parametrze $zmienna to możesz zrobić co w stylu
where name = $zmienna or $zmienna is null or $zmienna = ''
1
Jeśli masz NULL w wartości $parametr
to możesz zrobić tak:
WHERE pole=COALESCE($parametr, pole)
0
Tomek Pycia napisał(a):
Nie ma takie opcji w where. Ale jak wysyłasz nulla albo pusty string w parametrze $zmienna to możesz zrobić co w stylu
where name = $zmienna or $zmienna is null or $zmienna = ''
Może przedstawię problem jaśniej. Używam biblioteki Medoo
getDB()->select("tireproduct", [
"[>]tiretype" => ["tiretype_idtiretype" => "idtiretype"],
"[>]offer" => ["idtire" => "tireproduct_idtire"],
], [
"idtire",
"name",
], [
'LIMIT' => [$this->page * 10 - 10, 10],
'model' => $this->search
]);
i teraz jezeli $this->search jest rozne od null to faktycznie ma wykonac się 'model' => $this->search, ale jezeli jest puste to chcialbym, żeby nie brał tego pod uwagę i wyświetlil rekordy bez tego warunku