Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Własna wyszukiwarka
Forum PHP.pl > Forum > Przedszkole
Dzydz
Witam.

Gonią mnie terminy więc postanowiłem już nie czekać dłużej tylko poprosić kogoś o pomoc. :]
A więc mam problem z własną wyszukiwarką polegający na tym, że wyświetla mi on wszystkie pola w tablicy w której jest szukane zapytanie bez różnicy jakie słowo wpisaliśmy w wyszukiwarce.
Niżej zamieszczam kod i proszę o jakąś radę choćby najmniejszą jak znaleźć ten błąd .

  1. <?php
  2. <form action="search.php" method="post">
  3. <input type="text" name="search" />
  4. <input type="submit" value="Szukaj!" />
  5. </form>';
  6.  
  7. $base=mysql_connect('serwer','terwe','haslo','terwe');
  8. mysql_select_db("terwe", $base);
  9.  
  10. $wyniki=explode(" ",$search);
  11. $warunki=" (`user_name` LIKE '%$wyniki[0]%' Or `user_surname` LIKE '%$wyniki[0]%' )";
  12.  
  13. for ($i=1;$i<count($wyniki);$i++)
  14. {
  15. $warunki.=" and (`user_name` LIKE '%$wyniki[$i]%' Or `user_surname` LIKE '%$wyniki[$i]%' )";
  16. }
  17.  
  18. $query="SELECT * FROM `users` WHERE $warunki ";
  19. $result = MYSQL_QUERY($query,$base) or die(mysql_error());
  20.  
  21. $obAmount=mysql_num_rows($result);
  22.  
  23. // wyswietlenie ilości wyszukanych obiektów
  24. echo'Znaleziono: '.$obAmount.'<br /><br />';
  25. // wyświetlenie wyników w pętli
  26. for($x=0;$x<$obAmount;$x++)
  27. {
  28. // przekształcenie danych na tablicę
  29. $row=mysql_fetch_assoc($result);
  30.  
  31. echo $x+1;
  32. echo '. ';
  33.  
  34. echo '<a href="profile.php?id='.$row['user_id'].'">'.$row['user_name'].' </a>';
  35. echo '<a href="profile.php?id='.$row['user_id'].'">'.$row['user_surname'].' </a>';
  36.  
  37. }
  38.  
  39. // zamknięcie połączenia
  40. mysql_close($base);
  41.  
  42. ?>


Pozdrawiam.
nospor
A patrzyles w ogole czy zapytanie ci sie tworzy jak powinno?questionmark.gif

$query="SELECT * FROM `users` WHERE $warunki ";
var_dump($query);

I nagle wszystko staje sie jasne....
Dzydz
Ale ja wiem że zapytanie mi się tworzy nie tak jak powinno tylko właśnie co jest tego przyczyną.

Po sprawdzeniu tym który mi zaproponowałeś wyskakuje mi

"string(82) "SELECT * FROM `users` WHERE (`user_name` LIKE '%%' Or `user_surname` LIKE '%%'" - Zawsze to samo nie zależnie co wpisze.

Czyli oznacza to, że skrypt nie widzi wpisanego hasła w tym wypadku "$wyniki[$i]". Tylko właśnie nie wiem dlaczego.
nospor
$search jest puste.... okreslasz gdzies $search?? Nie, nie okreslasz.
Dane z forma nalezy pobierac z tablicy $_POST - ty tego nie robisz. Jak ty chcesz to zaliczenie zrobic jak nie znasz totalnych podstaw?
buliq
A może tak gdybyś zamienił "$wyniki[0]" na "{$wyniki[0]}" itd. ?
Dzydz
Ehh.. Ależ mi głupio. Wszystko przez to że nie napisałem głupiego $search = $_POST['search']; .
A ja się cały wieczór i poranek się męczyłem...
Nie dziwie się Twojej frustracji. Ale na szczęście te terminy to nie zaliczenie :]

Dzięki wielkie za pomoc i pozdrawiam. Temat do zamknięcia.
nospor
Na przyszlosc wlacz wyswietlanie wszystkich bledow. Wowczas takie bledy znjadziesz w 10 sekund a nie w caly wieczor + forum

ps: buliq ty tez zajrzyj do podstaw bo zapis jest poprawny wink.gif

ps2: frustracja? Nie do konca. Poprostu strasznie drazni mnie jak ludzie zamiast sprawdzic co zawieraja zmiennej na ktorych pracuja to wolą leciec na forum. Jakbys po sprawdzal wszysto po kolei to tez bys problem mial rozwiazany w minute.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.