Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Wyszukiwanie w bazie danych
Forum PHP.pl > Forum > Przedszkole
Max Damage
Generalnie chodzi o to, aby wyszukało to co wpisze i wyświetliło wyniki znalezione w tej tabeli.

  1. <title>Wyszukiwanie książek</title>
  2. </head>
  3. <h1>Wyszukiwanie książek</h1>
  4. <form action="rezultaty.php" method="post">
  5. Wybierz metodę wyszukiwania:<br />
  6. <select name="metoda_szukania">
  7. <option value="autor">Autor
  8. <option value="tytul">Tytuł
  9. <option value="isbn">ISBN
  10. </select>
  11. <br />
  12. Wprowadź poszukiwane wyrażenie:<br />
  13. <input name="wyrazenie" type="text">
  14. <br />
  15. <input type="submit" value="Szukaj">
  16. </form>
  17. </body>
  18. </html>


  1. <?php
  2.  $metoda_szukania=$_POST['metoda_szukania'];
  3. $wyrazenie=$_POST['wyrazenie'];
  4.  
  5. $wyrazenie = trim($wyrazenie);
  6.  
  7. if (!$metoda_szukania || !$wyrazenie)
  8. {
  9.  echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  10.  exit;
  11. }
  12.  
  13. {
  14. $metoda_szukania = addslashes($metoda_szukania);
  15. $wyrazenie = addslashes($wyrazenie);
  16. }
  17.  
  18. mysql_connect('localhost', 'user', 'haslo');
  19.  
  20. if (mysql_errno())
  21. {
  22.  echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  23.  exit;
  24. }
  25.  mysql_select_db("yhqcnyfhmjrnyrdk");
  26. $zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
  27. mysql_query($zapytanie);
  28.  
  29. $ile_znalezionych = $wynik->num_rows;
  30.  
  31. echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  32.  
  33. for ($i=0; $i <$ile_znalezionych; $i++)
  34. {
  35.  $wiersz = $wynik->fetch_assoc();
  36.  echo '<p><strong>'.($i+1).'. Tytuł: ';
  37.  echo stripslashes($wiersz['tytul']);
  38.  echo '</strong><br />Autor: ';
  39.  echo stripslashes($wiersz['autor']);
  40.  echo '<br />ISBN: ';
  41.  echo stripslashes($wiersz['isbn']);
  42.  echo '<br />Cena: ';
  43.  echo stripslashes($wiersz['cena']);
  44.  echo '</p>';
  45. }
  46.  
  47. ?>


Niestety wyniki się nie pokazują. Ktoś wie gdzie jest błąd?
nospor
a co to jest te: $wynik? Traktujesz to jak obiekt, który zawiera wynik ostatniego wykonania zapytania, ale nigdzie tego $wynik nie łączysz z tym wykonaniem.
Max Damage
Hm, no racja, tylko gdzie ja mam to dopisać aby działało?
maziak
linia 28 powinna wygladac :
  1. <?php
  2. $wynik=mysql_query($zapytanie);
  3. ?>

I nie jestem pewny, ale powinienes korzystac z obiektu mysqli, zeby pozniej uzywac ->fetch_assoc() oraz num_rows.
  1. <?php
  2. //czyli zmienna bazy danych(u Ciebie linia 19) powinna wygladac tak :
  3. $db = new mysqli('host','id','haslo','baza');
  4. //a zapytanie(linia 28 w kodzie ktory zapostowales) tak :
  5. $wynik = $db->query($zapytanie);
  6. ?>

a wybor bazy danych "mysql_select_db("yhqcnyfhmjrnyrdk");", mozesz wtedy wywalic.
Max Damage
Nom ten wynik też tak próbowałem tylko wywalało błąd, ale o tym mysqli to już nie wiedziałem nic. Dzięki wielkie biggrin.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.