Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odczyt z bazy sql z poziomu przeglądarki www
Forum PHP.pl > Forum > PHP
zbigniwkornet
Witam mam taki problem, że chcę odczytać z bazy wpisy wyszukują je po autorze.
Jednak pokazuje mi się tylko tekst:
"Rezultaty wyszukiwania

Ilosc znalezionych pozycji:

Fatal error: Call to a member function on a non-object in c:\usr\krasnal\www\zbigniw\rezu.php on line 42"

kod pliku:
  1. <html>
  2. <head>
  3. <title>Rezultaty wyszukiwania</title>
  4. </head>
  5. <body>
  6. <h1>Rezultaty wyszukiwania </h1>
  7. <?php
  8. // utworzenie krótkich nazw zmiennych
  9. $metoda_szukania=$_POST['metoda_szukania'];
  10. $wyrazenie=trim($_POST['wyrazenie']);
  11.  
  12. $wyrazenie = trim($wyrazenie);
  13.  
  14. if (!$metoda_szukania || !$wyrazenie) {
  15. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  16. }
  17.  
  18. // łączymy się z bazą danych
  19. $connection = @mysql_connect('localhost', 'root', 'krasnal')
  20. or die('Brak połączenia z serwerem MySQL');
  21. $db = @mysql_select_db('krasnal', $connection)
  22. or die('Nie mogę połączyć się z bazą danych');
  23.  
  24. // odczytujemyjemy rekord z bazy
  25. $ins = @mysql_query("select * from test where ".$metoda_szukania." like '%".$wyrazenie."%'");
  26.  
  27.  
  28. $ile_znalezionych = $wynik->num_rows;
  29.  
  30. echo "<p>Ilosc znalezionych pozycji: ".$ile_znalezionych."</p>";
  31.  
  32. for ($i=0; $i <$ile_znalezionych; $i++) {
  33. $wiersz = $wynik->fetch_assoc();
  34. echo "<p><strong>".($i+1).". Autor: ";
  35. echo stripslashes($wiersz['autor']);
  36. echo "</strong><br />tresc: ";
  37. echo stripslashes($wiersz['tresc']);
  38. echo "</p>";
  39. }
  40.  
  41. $wynik->free();
  42. $db->close();
  43.  
  44. ?>
  45.  
  46. </body>
  47. </html>


i plik wktórym wprowadzam dane do wyszkiwania:
  1. <title>Wyszukiwanie wpisow po autorze</title>
  2. </head>
  3.  
  4. <h1>Wyszukiwanie wpisow po autorze</h1>
  5.  
  6. <form action="rezu.php" method="post">
  7. Wybierz metodę wyszukiwania:<br />
  8. <select name="metoda_szukania">
  9. <option value="autor">Autor</option>
  10. </select>
  11. <br />
  12. Wprowadz poszukiwane wyrażenie:<br />
  13. <input name="wyrazenie" type="text" size="40">
  14. <br />
  15. <input type="submit" name="submit" value="Szukaj">
  16. </form>
  17.  
  18. </body>
  19. </html>
cycofiasz
Mam wrażenie że połączyłeś ze sobą 2 zupełnie różne skrypty...
zbigniwkornet
Co masz dokładnie na myśli?
Owszem korzystam z różnych źródeł
cycofiasz
  1. $ins = @mysql_query("select * from test where ".$metoda_szukania." like '%".$wyrazenie."%'");


Do tej linijki korzystasz ze standardowych, nieobiektowych funkcji do mysql:


  1. $ile_znalezionych = $wynik->num_rows;


A od tej już zaczynasz używać mysqli czy czegoś w podobie - obiektowego.

Musisz się zdecydować na jeden z nich
zbigniwkornet
na początku skrypt *.php wyglądał następująco:
  1. <html>
  2. <head>
  3. <title>Rezultaty wyszukiwania</title>
  4. </head>
  5. <body>
  6. <h1>Rezultaty wyszukiwania </h1>
  7. <?php
  8. // utworzenie krótkich nazw zmiennych
  9. $metoda_szukania=$_POST['metoda_szukania'];
  10. $wyrazenie=trim($_POST['wyrazenie']);
  11.  
  12. $wyrazenie = trim($wyrazenie);
  13.  
  14. if (!$metoda_szukania || !$wyrazenie) {
  15. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  16. }
  17.  
  18. $metoda_szukania = addslashes($metoda_szukania);
  19. $wyrazenie = addslashes($wyrazenie);
  20. }
  21.  
  22. @ $db = new mysqli('localhost', 'root', 'krasnal', 'test');
  23.  
  24. if (mysqli_connect_errno()) {
  25. echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  26. }
  27.  
  28. $zapytanie = "select * from test where ".$metoda_szukania." like '%".$wyrazenie."%'";
  29. $wynik = $db->query($zapytanie);
  30.  
  31. $ile_znalezionych = $wynik->num_rows;
  32.  
  33. echo "<p>Ilość znalezionych pozycji: ".$ile_znalezionych."</p>";
  34.  
  35. for ($i=0; $i <$ile_znalezionych; $i++) {
  36. $wiersz = $wynik->fetch_assoc();
  37. echo "<p><strong>".($i+1).". Autor: ";
  38. echo stripslashes($wiersz['autor']);
  39. echo "</strong><br />tresc: ";
  40. echo stripslashes($wiersz['tresc']);
  41. echo "</p>";
  42. }
  43.  
  44. $wynik->free();
  45. $db->close();
  46.  
  47. ?>
  48.  
  49. </body>
  50. </html>


jednak poza nagłówkiem "Rezultaty wyszukiwania" nic więcej nie wyświetlał.
I próbowałem kombinować
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.