Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie w którym zmienna może przyjąć dowolną wartość
Forum PHP.pl > Forum > Bazy danych
lkjhgf345
Witam
Załóżmy że mam krótki formularz z którego wybieram parametry które mają filtrować dane pobierane z bazy np. kolor roweru wybieram z dropdown list i potem w klauzurze zaznaczam
  1. SELECT * FROM bikes WHERE kolor = '$kolor'
. Czy można w mysql zbudować takie zapytanie w którym wartość tej zmiennej kolor może przyjąć dowolną wartość? Czy może trzeba w takim przypadku budować takie zapytanie gdzie się po prostu pomija ten warunek?
Z góry Dziękuje i Pozdrawiam w Nowym Roku
viking
Możesz użyć where kolor like '%' ale to oczywiście nie ma sensu większego. Po prostu pomijasz kolumnę jeśli nie chcesz po niej ograniczać. Swoją drogą używaj bindowania
  1. SELECT * FROM bikes WHERE kolor = ?
mmmmmmm
Przyjmując że $kolor zamiast 'niebieski' jest NULL, możesz użyć:
WHERE kolor=Coalesce($kolor, kolor)
nospor
@mmmmmmmm ale wiesz ze Coalesce(niebieski, kolor) pluje bledem? wink.gif

@autor jak juz wspomnial viking poprostu nie dodawaj do zapytania pol, po ktorych nie chcesz ograniczac.
Tutaj opisalem jak sie buduje takie dynamiczne zapytania
http://nospor.pl/wyszukiwarka-zapytanie-za...d-warunkow.html
mmmmmmm
@nospor, ale wiesz, że zapytanie jest
WHERE kolor=Coalesce('niebieski', kolor)
?
nospor
@mmmmmm oczywiscie ze wiem
tylko widzisz, ty nie napisales
Coalesce('$kolor', kolor)

Ty napisales
Coalesce($kolor, kolor)

Przez co otrzymasz
Coalesce(niebieski, kolor)

Nigdzie nie napisales, ze zmienna $kolor ma byc budowana tak
$kolor = "'niebieski'";

wink.gif
lkjhgf345
To w takim razie pozostaje mi zapoznanie się z artykułem i próbowanie po swojemu.
Dziękuje za odzew.
mmmmmmm
Cytat
Przyjmując że $kolor zamiast 'niebieski' jest NULL, możesz użyć:
nospor
@mmmmmmm widzialem to. Ale nie wiem czy wiesz, ale postem nie ida dane w apostrofach. To ze sobie cos zalozyles w zaden sposob nie sprawi, ze w magiczny sposob sie tam one pojawia wink.gif
No chyba ze wlozyc je recznie, mozna, oczywiscie, ale mimo wszystko wypadaloby o tym wspomniec, bo nasz autor tak troszke poczatkujacy wink.gif

Poza tym proponowane przez Ciebie rozwiazanie osobiscie uwazam za zle. Tego typu rzeczy robi sie przez dynamiczne budowanie warunkow zapytania w zaleznosci od danych jakie szukamy, a nie wkladanie do zapytania wszystkiego, nawet pusstych danych
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.