![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 6.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chciałbym stworzyć zapytanie do mysql, w postaci:
tak aby to formularz przesyłał po zaznaczeniu stosownej opcji całe wyrażenia do złożenia zapytania MySql, jak w przykładzie, np:
lub
a nie samo 'Anna'... 'Nowak" itp - raz będzie NOT LIKE a raz LIKE itp. Warunków wyszukiwania jest kilka i chciałbym uniknąć tworzenia dla wszystkich możliwych kombinacji zapytań. Otrzymuję jednak błąd zapytania podczas próby wysłania takiego formularza php. W jaki inny sposób można stworzyć zapytanie mysql zależne od danych przesłanych z formularza php? Z góry dziękuję za sugestie. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Kod <?php $query = "SELECT .. FROM tabela WHERE 1 "; if($opcjaZformularza) { $query .= "AND imie LIKE ..."; } else { $query .= "AND imie NOT LIKE ..."; } ... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 6.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przyznam, że nie do końca rozumiem, ale nie podałem całości. Formularz ma postać
Natomiast w wynik.php wygląda tak:
Ale takiego zapytanie nie mogę "skleić" bo mi raportuje błąd. Gdy dodam zatem to co napisałeś, czyli:
To przyznam że nie do końca rozumiem - niby powinien dodawać do $result wyrażenie z pętli (if, elseif) (Usuwam oczywiście LIKE i NOT LIKE z formularza (przesyłam samo "Ania", "Ewa" itd) ale coś nie chce działać. Jeśli można to proszę o wyjaśnienie na tym lub podobnym przykładzie. Ten post edytował grzegorzewski 18.04.2010, 17:17:10 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 389 Pomógł: 141 Dołączył: 11.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o podstawach w php, mysql.
np. Kod $imie=$_POST["imie"]; zamiast przypisywać do $imie Anna lepiej byś porównał, poza tym Anna to nie liczba całkowita, więcif($imie=Anna) { Kod if($imie=='Anna') Kod $result = mysql_query("SELECT * FROM baza WHERE imie '$imie' AND nazwisko '$nazwisko' AND medale '$medale'"); gdzie masz znaki = ?Kod WHERE imie='$imie' itd Kod $result .= "AND imie NOT LIKE 'Anna', 'Ewa', 'Adam'."; jak już toKod $result .= "AND imie NOT IN ('Anna', 'Ewa', 'Adam').";
albo $result .= "AND imie NOT LIKE 'Anna' AND imie NOT LIKE 'Ewa' AND imie NOT LIKE 'Adam'."; |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 6.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc, od razu poszedłem dalej. No i cały czas się uczę (IMG:style_emoticons/default/smile.gif) .
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 17:31 |