![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
witam
napisałem w phpie skrypt wyszukujący rekordy z bazy mysql:
pytanie brzmi jak napisać zapytanie mysqlowe aby wyszukiwał mi rekord przy podaniu kilku wartosci np. podaję nazwe towaru i np. cene a wyszukiwarka wyszukuje mi dany towar. nie wiem jak mam sobie z tym poradzić: albo wyświetla mi kilka razy te same rekordy albo nie wyswietla mi nic (w zaleznosci czy uzyje AND albo OR). Jak powinnien wygladac poprawne wyszukiwanie w MySQLu?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? ewentualnie proszę o wszelkie sugestie na temat tego kodu w ogóle... Ten post edytował kononowicz 4.12.2006, 03:31:58 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 1 Dołączył: 5.11.2005 Skąd: Bieruń city Ostrzeżenie: (0%) ![]() ![]() |
przetlumacz to na polski, bo z tego co widze w kodzie i zrozumialem z tresci wynika, ze skrypt wyszukuje zarowno pod wzgledem ceny, jak i nazwy
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
przetlumacz to na polski, bo z tego co widze w kodzie i zrozumialem z tresci wynika, ze skrypt wyszukuje zarowno pod wzgledem ceny, jak i nazwy no własnie zalezy mi na tym aby skrypt wyswietlał dane w zaleznosci od tego jakie podam dane. jezeli podam tylko np. towar to wyswietla mi wzgledem towaru a jezeli podam towar i cene to wyswietla mi towar o podanej cenie. a jak według ciebie to powinno wyglądać?? zamiast and wpisałem or i teraz mi wyswietla wyniki jednak ten sam rekord wyswietla mi np. 6 razy :/ własnie zauwazyłem dlaczego wyswietlało mi kilka razy te same dane. oto poprawiony kod (jednak dziwnie sie zachowuje i nie szuka wszystkich danych :/):
Ten post edytował kononowicz 4.12.2006, 06:42:30 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jak używasz OR w zapytaniu to szuka jednego lub drugiego, ale jeśli dostajesz w odpowiedzi kilka takich samych rekordów to oznacza, że jest ich kilka w bazie.
Więc jak chcesz aby wyszukany towar spełniał dwa warunki mszą być połączone AND. Ogólnie sprawdź co w ogóle jest w bazie, bo mam dziwne przeczucie, że jest tam ogromny bałagan. I jak zawsze doradzam przeczytanie jakiegoś kursu i jeśli sam tworzyłeś tą bazę to również takiego gdzie jest opisane jak powinno się tworzyć takie bazy, bo tu można popełnić sporo błędów. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
a po co distinct (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) jezeli wpisze ktos cene 2 zł a wiecej produktów bedzie po 2 wyswetli jeden wywal to
Ten post edytował acztery 4.12.2006, 09:22:34 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
co do ceny po nie lepiej dać between wydawać się ze wlasnie do tego to jest
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Jak używasz OR w zapytaniu to szuka jednego lub drugiego, ale jeśli dostajesz w odpowiedzi kilka takich samych rekordów to oznacza, że jest ich kilka w bazie. Więc jak chcesz aby wyszukany towar spełniał dwa warunki mszą być połączone AND. Ogólnie sprawdź co w ogóle jest w bazie, bo mam dziwne przeczucie, że jest tam ogromny bałagan. I jak zawsze doradzam przeczytanie jakiegoś kursu i jeśli sam tworzyłeś tą bazę to również takiego gdzie jest opisane jak powinno się tworzyć takie bazy, bo tu można popełnić sporo błędów. nie mam bałaganu (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) bo mam tylko kilka testowych rekordów.. a to że wyświetlało mi np. 6 po kazdym rekodzie i jezeli było znalezionych wiecej to na przemian to wina jakiegos błedu w kodzie. nie można tego zrobić prościej, czyli jedna linijką SQLa?? distinct juz usunałem ... sam na to wpadłem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) faktycznie between to dobry pomysł. dzieki za rady Ten post edytował kononowicz 4.12.2006, 12:13:08 |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat nie można tego zrobić prościej, czyli jedna linijką SQLa?? Oczywiscie ze mozna, ale bedzie srednio czytelne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Oczywiscie ze mozna, ale bedzie srednio czytelne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) a można otrzymać wskazówkę jak to zrobić?? |
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
i masz jedna linijke (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A na powaznie. Nie ma co sie bawic w jednolinijkowce, gdyz naprawde jesli nawet ci sie uda cos poukladac, to nagle gdy bedziesz musial dolozyc warunkow to bedziesz mial powazny problem z zapanowaniem nad tym. Podany przeze mnie link umozliwia ci w ladny i przyjemny sposob zapanowac nad wszystkim. a to ze jest 5 linijek zamiast jednej.... bez przesady |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
cos takiego naskrobałem:
wyświetla: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/*********/szukaj1.php on line 41 Ten post edytował kononowicz 4.12.2006, 14:11:17 |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no ale kolego.... zapytanie to jeszcze trzeba wykonac. O mysql_query() slyszal?
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
no ale kolego.... zapytanie to jeszcze trzeba wykonac. O mysql_query() slyszal? słyszał słyszał :
wyszukuje mi według ceny i kodu ale towaru jakos nie ... |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no ale co to jest to TOWARY? bo w warunku dales: TOWARY <= . to TOWARY to liczba i ma byc warunek <= ?
Z kodem zreszta podobnie. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
no ale co to jest to TOWARY? bo w warunku dales: TOWARY <= . to TOWARY to liczba i ma byc warunek <= ? Z kodem zreszta podobnie. więc przy TOWARY i KOD zamiast <= powinno byc = lub LIKE (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) TOWARY i KOD to pole w tabeli 'towary' ... to jest typ varchar po wpisaniu LIKE pojawia sie takie cos: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/*******szukaj1.php on line 63 towary kod cena działy Array ( [towary] => tow2 [kod] => [cena_od] => [cena_do] => [znajdz] => znajdz ) 1054Unknown column 'tow2' in 'where clause' Ten post edytował kononowicz 4.12.2006, 14:39:36 |
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no tak, skoro to napis to powinien byc like, ale poprawny like...
I sobie dostosuj. Jakbys mial problemy to tu masz linka, ktorego dokladna analiza powinna ci pomoc: http://pl.php.net/manual/pl/language.types.string.php |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
nie mogęsobie poradzić.. jak wstawić % miedzy $towary?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
|
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 0 Dołączył: 12.11.2006 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 06:36 |