Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> odczyt z bazy sql z poziomu przeglądarki www
zbigniwkornet
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.03.2011

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
cycofiasz
post
Post #2





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Mam wrażenie że połączyłeś ze sobą 2 zupełnie różne skrypty...
Go to the top of the page
+Quote Post
zbigniwkornet
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.03.2011

Ostrzeżenie: (0%)
-----


Co masz dokładnie na myśli?
Owszem korzystam z różnych źródeł
Go to the top of the page
+Quote Post
cycofiasz
post
Post #4





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
zbigniwkornet
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.03.2011

Ostrzeżenie: (0%)
-----


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ć
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 19:49