Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] problem z wyszukiwaniem z bazy danych
Forum PHP.pl > Forum > Przedszkole
gojira
Witam, dopiero sie ucze PHP, wiec napewno znajdziecie troche tu bledow,
ale teoretycznie dziala. Stworzylem maly sklepik internetowy, na
zaliczenie zajec, i z czasem bedzie on coraz lepszy> Teraz dodalem
"Szukaj" czyli wyszukiwanie wyrazu z bazy danych i wyrzucenie z tabeli
na ekran z komorek zwiazanych z ta komorka w ktorej znalazl sie ciag
znakow. Wyszukuje mi ciag, problem w tym, ze gdy wpisze ciag znakow
ktorego nie ma w bazie, powinno wyrzucic mi na ekran wypowiedz w stylu:
nie ma takiego czegos w bazie. Tu jednak nie dziala mi to i zamiast
napisu pojawia mi sie pusta tabela. Wlasnie to chce wyeleminowac, aby w
przypadku braku rzeczy ktora pasuje do ciagu znakow wpisanych w pole
szukaj, pojawial sie sam tekst, a nie pusta tabelka.

mam tak skonstrulowany html wraz z php:
  1. <?php
  2. /* Wysyłanie zapytania SQL */
  3. $query = "SELECT * FROM `produkty`";
  4.  
  5. if (isset($_GET['search'])){
  6. $result = mysql_query ("$query WHERE `Nazwa` like '%{$_GET['search']}%'") or die ("Brak takiego sprzetu");
  7.  
  8. }else{
  9. $result = mysql_query ($query) or die ("Zapytanie zakończone niepowodzeniem");
  10. }
  11. echo "
  12. <tr class=\"aa\">
  13. <td class=\"tab_id1\">Id</td>
  14. <td class=\"tab_nazwa1\">Nazwa</td>
  15. <td class=\"tab_pro1\">Producent</td>
  16. <td class=\"tab_ilosc1\">Ilośc</td>
  17. <td class=\"tab_cena1\">Cena</td>
  18. </tr>";
  19. while ($val = mysql_fetch_row($result)) {
  20. $id=$val['0'];
  21. $nazwa=$val['1'];
  22. $pro=$val['2'];
  23. $ilosc=$val['3'];
  24. $cena=$val['4'];
  25. <tr class=\"aaa\">
  26. <td class=\"tab_id\">$id</td>
  27. <td class=\"tab_nazwa\">$nazwa</td>
  28. <td class=\"tab_pro\">$pro</td>
  29. <td class=\"tab_ilosc\">$ilosc</td>
  30. <td class=\"tab_cena\">$cena</td>
  31. <td><a href=\"szczegoly.php?id=$id\">szczegóły</a></td>
  32. </tr>
  33. ";
  34. }
  35.  
  36. <a href=&#092;"szczegoly.php?id=$id\"><a href=\"szczegoly.php?id=$id\">
  37. ?>


</a href=\"szczegoly.php?id=$id\"></a href=\"szczegoly.php?id=$id\">
Daimos
zlicz rekordy (COUNT) na poczatku
  1. <?php
  2. $zapytanie = "SELECT COUNT(*) FROM tabela";
  3. $wykonaj = mysql_query($zapytanie) or die(mysql_error());
  4. list($iloscrekordow) = mysql_fetch_row($wykonaj);
  5. ?>
DawidF
Nie zrobiłeś tutaj sprawdzenia, ile wierszy zwraca Twoje zapytanie.

Przed wyświetleniem tabeli powinieneś sprawdzić ilość rekordów, jakie odszukało zapytanie, np.

  1. <?php
  2. if( mysql_num_rows( $result ) > 0 ) {
  3. ?>


i dopiero wyświetlić tabelę z wynikami.

pod tą tabelą kończysz sprawdzenie

  1. <?php
  2. } else {
  3. ?>


i wpisujesz komunikat, który ma się pokazać, jeśli zapytanie zwróci wynik "zerowy", np.

  1. <?php
  2. echo 'Brak wyników dla '.$_GET['search'].'<br />';
  3. ?>
gojira
Dawidf, Twoje rozwiazanie dziala bardzo dobrze, dziekuje smile.gif jedna nauczka wiecej na przyszlosc

pozdrawiam smile.gif
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.