[MySQL][PHP]problem z wyszukiwarką |
[MySQL][PHP]problem z wyszukiwarką |
30.11.2009, 15:38:48
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 5.10.2009 Ostrzeżenie: (0%) |
Witajcie!
Mam skrypt (poniżej) wyszukiwarki. Wyszukiwarka ma szukać danych z dwóch tabel. Skrypt zachowuje się poprawnie (zgodnie z oczekiwaniami) jeśli przeszukuję tylko jedną tabelę. Przy moich wielokrotnych próbach dodania do zapytania drugiej tabeli albo wyświetla mi : "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /search2.php on line 83" albo nie wyszukuje niczego, albo wyświetla zawartość wszystkich pól tabel (klienci i detale).
Proszę o sugestie jak powinno wyglądać to nieszczęsne zapytanie, a może wogóle w całym kodzie coś pokręciłam. |
|
|
30.11.2009, 15:50:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 372 Pomógł: 2 Dołączył: 10.05.2009 Ostrzeżenie: (0%) |
NIe łączy się w ten sposob dwóch tabel:
ale tak
zamiast LEFT OUTER JOIN możesz użyć RIGHT OUTER JOIN, wszystko zależy od tego w której kolumnie możesz mieć wartości NULL i co ma być wyswietlane. A co do kodu PHP to mądrzejsi koledzy się wypowiedzą |
|
|
30.11.2009, 15:53:53
Post
#3
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 32 Dołączył: 21.08.2008 Skąd: Toruń Ostrzeżenie: (0%) |
Poczytaj o
. A takie coś zadziała:
-------------------- |
|
|
30.11.2009, 16:50:43
Post
#4
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 5.10.2009 Ostrzeżenie: (0%) |
Też "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /search2.php on line 83" To samo w propozycji jasin'a |
|
|
30.11.2009, 16:58:44
Post
#5
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 32 Dołączył: 21.08.2008 Skąd: Toruń Ostrzeżenie: (0%) |
To daj np.
wklej wynik do np. phpmyadmina i tam sprawdź co zwróci Ci mysql. -------------------- |
|
|
30.11.2009, 17:34:30
Post
#6
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 5.10.2009 Ostrzeżenie: (0%) |
To daj np.
wklej wynik do np. phpmyadmina i tam sprawdź co zwróci Ci mysql. Odpowiedź jaką dostałam: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where miasto = 'warszawa' and imie = 'piotr' and materialy = 'motor' LIMIT 0, 30' at line 1 SELECT klienci.klient_id, klienci.imie, klienci.nazwisko, klienci.miasto, details.klient_id, details.materialy FROM klienci LEFT OUTER JOIN details ON ( klienci.klient_id = details.klient_id ) AND WHERE miasto = 'warszawa' AND imie = 'piotr' AND materialy = 'motor' LIMIT 0 , 30 |
|
|
30.11.2009, 17:48:42
Post
#7
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 32 Dołączył: 21.08.2008 Skąd: Toruń Ostrzeżenie: (0%) |
Odpowiedź jaką dostałam: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where miasto = 'warszawa' and imie = 'piotr' and materialy = 'motor' LIMIT 0, 30' at line 1 SELECT klienci.klient_id, klienci.imie, klienci.nazwisko, klienci.miasto, details.klient_id, details.materialy FROM klienci LEFT OUTER JOIN details ON ( klienci.klient_id = details.klient_id ) AND WHERE miasto = 'warszawa' AND imie = 'piotr' AND materialy = 'motor' LIMIT 0 , 30 a więc jak widać masz tu błąd w zapytaniu. Powinno wyglądać:
Ten post edytował jasin 30.11.2009, 17:49:17 -------------------- |
|
|
1.12.2009, 17:55:04
Post
#8
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 5.10.2009 Ostrzeżenie: (0%) |
a więc jak widać masz tu błąd w zapytaniu. Powinno wyglądać:
No tak, poprawiłam zapytanie. Teraz po zapytaniu do bazy przez phpmyadmin zwraca mi piękny zielony znaczek , ale po wykonaniu zapytania na stronie nie zwraca wyników.
tzn, jeśli wpisze tylko miasto i imię jest OK , zwraca tak, jak być powinno czyli miasto, imie, nazwisko, materialy. Ale jeśli uzupełnię również trzecie pole materialy (z tabeli details) to nie wyświetla niczego Problem rozwiązany. Nie wyświetlało wyników na stronie, ponieważ w polu 'materialy' nie było pojedynczych słów jak w pozostałych polach, a mogły się znaleść również ciągi znaków oddzielone spacjami, lub przecinkami. Zamieniłam
na
Zapytanie pozostało bez zmian. Wszystko śmiga aż miło. Wielkie dzięki za pomoc. |
|
|
Wersja Lo-Fi | Aktualny czas: 11.06.2024 - 01:32 |