Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ przesyłanie danych z insert do SELECT WHERE

Napisany przez: Gabi12 29.12.2019, 02:22:39

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

Napisany przez: viking 29.12.2019, 06:14:42

Dobrze kombinujesz. Możesz zawsze hurtem usunąć z tablicy post puste pola.

Napisany przez: Gabi12 6.01.2020, 15:21:05

Rozwiązałam problem sprawdzając czy dana jest pusta i jeśli tak przypisuję jej wartość "%" i wyszukuje mi wszystkie pola.

Napisany przez: nospor 6.01.2020, 15:22:04

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

Napisany przez: Gabi12 6.01.2020, 15:29:59

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

Napisany przez: nospor 6.01.2020, 15:30:54

Juz podalem ci jak to sie robi poprawnie. To rozwiaze twoj aktualny problem rowniez

Napisany przez: Gabi12 6.01.2020, 15:59:50

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)