![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jestem w trackie budowy wyszukiwarki wyszukującej osoby. Mój problem polega na tym że nie wiem gdzie mam błąd, że nie zwraca mi wyników
Co jest nie tak. Dodam że w standartowych zapytaniach jest ok, ale po przeróbce na pdo już nie zwraca wynikóe, żadnych błędów itp. Ten post edytował DonJeday 24.11.2008, 19:09:40 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Przyjrzyj się:
Jak podstawić wiele warunków do zapytania? W tej chwili podstawiasz tablicę, a jaką składnię ma WHERE + wiele warunków? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) PS. Poza tym, pokopały Ci się cudzysłowy. Ten post edytował erix 24.11.2008, 18:47:39 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Cudzysłowy pokopały mi się przy usówaniu danych połączenia z bazą ^^
tzn. tak jak mam przekazać wiele tych warunków? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Jak? Tak samo, jak w instrukcjach warunkowych. PS. Google: MySQL WHERE i znajdziesz odpowiedź. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Pardon, mój błąd, napisałeś ten kod podobnie do dodawania pól w warunkach, że przeoczyłem...
A próbowałeś łapać wyjątek PDOException na operacjach do bazy? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
A próbowałeś łapać wyjątek PDOException na operacjach do bazy? Nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nigdy tego nie potrzebowałem ^^ Jak to w ogóle użyć? Czy
Wrzucam w try {} ? Czy przed try? Ten post edytował DonJeday 24.11.2008, 20:27:04 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Użycie masz opisane na tej samej stronie manuala, gdzie znalazłeś ten kawałek.
|
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No właśnie. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Napisałeś wcześniej: Cytat Co jest nie tak. Dodam że w standartowych zapytaniach jest ok, ale po przeróbce na pdo już nie zwraca wynikóe, żadnych błędów itp. Zobacz najpierw, czy nie ma jakichś wyjątków. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Nawiązując do PDOException
Oto ci chodzi? :
|
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Właśnie.
Ale w bloku catch lepiej będzie dać var_dump" title="Zobacz w manualu PHP" target="_manual z parametrem $e; więcej info dostaniesz. A w ogóle, coś wypluwa? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Problem leży w
$where = implode(' and ', $wh); Bez tego wyszukiwarka działa ale teraz nie mam jak łączyc warunków, jak to zastąpić? Ten post edytował DonJeday 24.11.2008, 22:09:21 |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Problem leży w $where = implode(' and ', $wh); Na jakiej podstawie to stwierdziłeś? Może sprawdź składnie finalnie uzyskiwanego zapytania, spróbuj je wywołać w konsoli MySQL/phpMyAdmin. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Stwierdziłem to po tym, że mój kolega też ma problem z implode w PDO. Poza tym jak usunałem tą linijkę i bardziej sformułowałem zapytanie poszło, ale bez implode ani rusz...
|
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Napisałem, co masz zrobić. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem i zapytanie w takiej formie wyszukało mnie w bazie...
|
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
W takiej formie, czy dokładnie takie, jakie wygenerowało PHP?
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Normalnie wyświetliło mój rekord. A dokłądnie takie zapytanie powinno wejśc w PDO i wchodzi ale nie wyświetla wyników... Ten post edytował DonJeday 24.11.2008, 22:34:29 |
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Hmm, wydaje mi się, że Twój problem dotyczy różnych systemów kodowań w bazie i na stronie. Spróbuj wyciągnąć rekordy szukając po ID, czy sytuacja się powtórzy.
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Napewno nie kodowanie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Cały system napisałem w PDO wszystko w UTF i nigdzie nie było problemu z selectem do momentu gdy zacząłem pisać wyszukiwarkę. BTW. pisałem że jeśli ogranicze i bardziej sformułuje zapytanie to wyszukiwanie działa. To napewno przez implode tylko nie wiem jak to zastąpić.
|
|
|
![]()
Post
#21
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Bindowanie parametrów działa tylko dla wartości pól. To znaczy że nie możesz sobie zrobić np.
Pozostaje Ci tylko:
ale w tym wypadku nie ma potrzeby bindowania parametrów, więc zmień prepare na query i usuń execute. |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Dobra wszystko zrobione działa elegancko (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) execute nie potrzeba usunąć (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Efekt końcowy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
A jeszcze jak by można się dowiedzieć, jak zrobić by wyszukiwanie nie było takie szczegółowe, że np. dam kawałek numeru telefonu to mi wyświetli osoby z takim kawałkiem numeru. Próbowałem LIKE ale coś nie wychodziło ^^ |
|
|
![]()
Post
#23
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Próbowałem LIKE ale coś nie wychodziło Bo właśnie potrzebujesz LIKE. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pokaż najpierw, jak próbowałeś, bo kawy nie piję i nie mam jak wróżyć. ;P |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Taka mała notka: LIKE czy ILIKE nie nadaje się do wyszukiwania po dużych ilościach rekordów - wtedy Sphinx, Xapian lub inne narzędzie przeznaczone do bycia wyszukiwarką (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 24.10.2008 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 13:58 |