Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z wyświetlaniem danych z bazy na stronie
Forum PHP.pl > Forum > Przedszkole
kardi3
Witam,
mam problem ze skryptem z pewnej książki,
nie działa mi wyszukiwanie elementów z bazy danych i wyświetlanie ich na stronie. Skrypt wyświetla na stronie :"Książkorama-rezultaty wyszukiwania Ilość znalezionych wyników" Jak ktoś chciałby sprawdzić to link do wyszukiwarki www.ukskrzeszowice.pl/phptest/szukaj.html

1 plik z wyszukiwarki
  1. <meta content="text/html; charset=iso-8859-2"
  2. http-equiv="content-type"/>
  3. <title> Wyszukiwanie książek w księgarni "Książkorama"</title>
  4. </head>
  5. <h1>Wyszukiwanie książek w księgarni "Książkorama"</h1>
  6.  
  7. <form action="rezultaty.php" method="post">
  8. Wybierz metodę wyszukiwania: <br />
  9. <select name="metoda_szukania">
  10. <option value="autor">Autor</option>
  11. <option value="tytul">Tytul</option>
  12. <option value="isbn">ISBN</option>
  13. <br />
  14. Wprowadź poszukiwane wyrażenie: <br />
  15. <input name="wyrazenie" type="text" size="40">
  16. <br />
  17. <input type="submit" name="submit" value="Szukaj">
  18. </form>
  19. </body>
  20. </html>


2 plik z wyszukiwarki
  1. <html>
  2. <head>
  3. <title>"Książkorama"-Rezultaty wyszukiwania</title>
  4. </head>
  5. <body>
  6. <h1>"Książkorama"-Rezultaty wyszukiwania </h1>
  7. <?php
  8. // utworzenie krótkich nazw zmiennych
  9. $metoda_szukania=$_POST['metoda_szukania'];
  10. $wyrazenie=$_POST['wyrazenie'];
  11. $wyrazenie = trim($wyrazenie);
  12.  
  13. if (!$metoda_szukania || !$wyrazenie)
  14. {
  15. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  16. }
  17.  
  18. {
  19. $metoda_szukania = addslashes($metoda_szukania);
  20. $wyrazenie = addslashes($wyrazenie);
  21. }
  22. $connection = @mysql_connect('ukskrzeszowice.pl','kardi3','haslo');
  23. @ $db = new mysqli($connection,'kardi3_Ksiazki');
  24.  
  25. if (mysqli_connect_errno())
  26. {
  27. echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  28. }
  29.  
  30. $zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
  31. $wynik = $db->query($zapytanie);
  32.  
  33. $ile_znalezionych = $wynik->num_rows;
  34.  
  35. echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  36. $wiersz = $wynik;
  37. for ($i=0; $i <$ile_znalezionych; $i++)
  38. {
  39.  
  40. echo "<p><strong>".($i+1).". Tytuł: ";
  41. echo stripslashes($wiersz['tytul']);
  42. echo "</strong><br />Autor: ";
  43. echo stripslashes($wiersz['autor']);
  44. echo "<br />ISBN: ";
  45. echo stripslashes($wiersz['isbn']);
  46. echo "<br />Cena: ";
  47. echo stripslashes($wiersz['cena']);
  48. echo "</p>";
  49. }
  50.  
  51.  
  52. $db->close();
  53.  
  54. ?>
  55.  
  56. </body>
  57. </html>



Tabela w bazie danych jest wypełniona, dane do logowania do bazy są poprawne, kwerenda po wpisaniu w konsole wyświetla dobre wyniki natomiast na stronie nie wyświetlają się żadne. Przypuszczam, że jest jakiś błąd w tym 2 pliku w kodzie php. Proszę o pomoc
wrotek
Powinno być coś takiego:
  1. $zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
  2. $wynik = $db->query($zapytanie);
  3.  
  4. $ile_znalezionych = $wynik->num_rows;
  5.  
  6. echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  7. $i=0;
  8. while ($wiersz = $wynik->fetch_assoc())
  9. {
  10. $++;
  11. echo "<p><strong>{$i}. Tytuł: ";
  12. echo stripslashes($wiersz['tytul']);
  13. echo "</strong><br />Autor: ";
  14. echo stripslashes($wiersz['autor']);
  15. echo "<br />ISBN: ";
  16. echo stripslashes($wiersz['isbn']);
  17. echo "<br />Cena: ";
  18. echo stripslashes($wiersz['cena']);
  19. echo "</p>";
  20. }
kardi3
Teraz wyskakuje taki błąd
Fatal error: Call to a member function fetch_assoc() on a non-object in /home/kardi3/domains/ukskrzeszowice.pl/public_html/phptest/rezultaty.php on line 39

Plik po zmianach :
  1. <html>
  2. <head>
  3. <title>"Książkorama"-Rezultaty wyszukiwania</title>
  4. </head>
  5. <body>
  6. <h1>"Książkorama"-Rezultaty wyszukiwania </h1>
  7. <?php
  8. // utworzenie krótkich nazw zmiennych
  9. $metoda_szukania=$_POST['metoda_szukania'];
  10. $wyrazenie=$_POST['wyrazenie'];
  11. $wyrazenie = trim($wyrazenie);
  12.  
  13. if (!$metoda_szukania || !$wyrazenie)
  14. {
  15. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  16. }
  17.  
  18. {
  19. $metoda_szukania = addslashes($metoda_szukania);
  20. $wyrazenie = addslashes($wyrazenie);
  21. }
  22. $connection = @mysql_connect('ukskrzeszowice.pl','kardi3','haslo');
  23. @ $db = new mysqli($connection,'kardi3_Ksiazki');
  24.  
  25. if (mysqli_connect_errno())
  26. {
  27. echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  28. }
  29.  
  30. $zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
  31. $wynik = $db->query($zapytanie);
  32. $ile_znalezionych = $wynik->num_rows;
  33.  
  34. echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  35. $i=0;
  36. while ($wiersz = $wynik->fetch_assoc())
  37. {
  38. $i++;
  39. echo "<p><strong>{$i}. Tytuł: ";
  40. echo stripslashes($wiersz['tytul']);
  41. echo "</strong><br />Autor: ";
  42. echo stripslashes($wiersz['autor']);
  43. echo "<br />ISBN: ";
  44. echo stripslashes($wiersz['isbn']);
  45. echo "<br />Cena: ";
  46. echo stripslashes($wiersz['cena']);
  47. echo "</p>";
  48. }
  49.  
  50.  
  51. $db->close();
  52.  
  53. ?>
  54.  
  55. </body>
  56. </html>


Pomoże ktoś?
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.