Proszę o pomoc
Jestem nowy na forum i początkującym w PHP i SQL.
Mam formularz w którym jest parę pól insert do wpisywania danych, następnie dane przesyłane są metodą post do zapytania SELECT. np Imię, Nazwisko, Stanowisko
Jak chcę znaleźć dane zawierające np imię i nazwisko bez podania stanowiska zapytanie uznaje stanowisko za puste i nie podaje prawidłowego wyniku.
Podpowiedzcie czy jest możliwość podania instrukcji warunkowej sprawdzającej czy pole jest puste lub innego rozwiązania problemu.
Oczywiście dopuszczam by nie były wszystkie pola wypełnione i instrukcja powinna zmieniać zapytanie.
Myślałem o sprawdzeniu za pomocą if empty i podaniu różnych poleceń SELECT. przy 3 zmiennych jest to do ogarnięcia przy 20 to już jest niezła zabawa a znając życie jest prostsze rozwiązanie.
SELECT `Imie`, `Nazwisko`, `Stanowisko` FROM `pracownicy` WHERE `Imie` LIKE :imie and Nazwisko LIKE :nazwisko and Stanowisko LIKE :stanowisko
Dobrze kombinujesz. Możesz zawsze hurtem usunąć z tablicy post puste pola.
Rozwiązałam problem sprawdzając czy dana jest pusta i jeśli tak przypisuję jej wartość "%" i wyszukuje mi wszystkie pola.
Twoje rozwiazanie to jedno z gorszych. TEraz zmuszasz baze do niepotrznych i ciezkich obliczen.
Takie rzeczy sie robi na zasadzie nie dodawania do zapytania tego, czego nie chcesz. Tu masz przyklad jak to sie robi poprawnie
http://nospor.pl/wyszukiwarka-zapytanie-zalezne-od-warunkow.html
Niestety mam kolejny problem
`imie` LIKE "%" OR `imie` IS NULL
PDO: `imie` LIKE :imie OR `imie` IS NULL
Muszę w zapytaniu dodać coś takiego gdzie jak imie = "%" wtedy jest NULL a jak inna wartość to IS NULL
jak zapisuję PDO tak"
PDO: `imie` LIKE :imie OR `imie` IS :imie_null
gdzie za imie_null wstawiam wartość "NULL" lub "NOT NULL" pojawia się bład PDO
Podpowiedzcie proszę jak rozwiązać problem
Juz podalem ci jak to sie robi poprawnie. To rozwiaze twoj aktualny problem rowniez
zrobione brakowało mi kropki przy nazwie zmiennych dzięki za pomoc a rozwiązanie ze wstawianiem warunków jest ciekawe spróbuję przerobić kod
Dzięki za pomoc
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)