Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Błąd przy próbie wyświetlenia bazy danch przez skrypt PHP
mattajah
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 10.02.2014

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


Witam,
napisałem kod, który ma za zadanie wyświetlić wartości pobrane z bazy MySQL.
Przy wyświetlaniu wyskakuje mi błąd mysql_fetch_array() expects parameter 1 to be resource, object given in... (45 linijka kodu)
Generalnie podczas pisania w PHP kilka razy ten błąd mi się powtarzał, w różnych miejscach.
Prosiłbym o wytłumaczenie skąd się taki błąd bierze i jak go poprawić.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Untitled Document</title>
  6. </head>
  7.  
  8. <body>
  9. <?php
  10. //połączenie z bazą
  11. @ $kontakt = new mysqli("localhost", "user1", "user1", "hurtownia");
  12.  
  13. if (mysqli_connect_errno()){
  14. echo "Błąd: Połączenie z bazą danych nie powiodło się, spróbuj ponownie później.";
  15. }
  16.  
  17. $zapytanie = "select * from produkty";
  18. $wynik = $kontakt->query($zapytanie);
  19.  
  20. if ($wynik) {
  21. echo $kontakt->affected_rows." produkt zapisany do bazy.";
  22. } else {
  23. echo "Wystąpił błąd z połączeniem!";
  24. }
  25. ?>
  26.  
  27. <table width="400" border="0" cellspacing="1" cellpadding="0">
  28. <tr>
  29. <td>
  30. <table width="400" border="1" cellspacing="0" cellpadding="3">
  31. <tr>
  32. <td align="center" colspan="10"><strong>Produkty</strong> </td>
  33. </tr>
  34.  
  35. <tr>
  36. <td align="center"><strong>ID</strong></td>
  37. <td align="center"><strong>Nazwa</strong></td>
  38. <td align="center"><strong>Producent</strong></td>
  39. <td align="center"><strong>Kategoria</strong></td>
  40. <td align="center"><strong>Cena</strong></td>
  41. </tr>
  42.  
  43. <?php
  44. while($rows=mysql_fetch_array($wynik)){
  45. ?>
  46.  
  47. <tr>
  48. <td><?php echo $rows['ID_prod']; ?></td>
  49. <td><?php echo $rows['nazwa']; ?></td>
  50. <td><?php echo $rows['producent']; ?></td>
  51. <td><?php echo $rows['ID_kat']; ?></td>
  52. <td><?php echo $rows['cena']; ?></td>
  53. <td align="center"><a href="update.php?id=<?php echo $rows['id']; ?>">Aktualizuj</a></td>
  54. <td align="center"><a href="delete_ac.php?id=<?php echo $rows['id']; ?>">Usuń</a> </td>
  55. <td align="center"><a href="add.php?id=<?php echo $rows['id']; ?>">Dodaj</a></td>
  56. </tr>
  57.  
  58. <?php
  59. }
  60. ?>
  61.  
  62. </table>
  63. </td>
  64. </tr>
  65. </table>
  66.  
  67. <?php
  68. $kontakt->close();
  69. ?>
  70. </body>
  71. </html>


Jeżeli jest to jakaś prosta sprawa to proszę o wyrozumiałość, jestem bardzo początkujący (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mattajah
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 10.02.2014

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


Mam jeszcze jeden problem, zrobiłem skrypt, który służy do wyszukiwania danych w bazie MySQL.
Niestety za każdym razem zwraca mi 2 błędy:

Cytat
Trying to get property of non-object in .... on line 29 oraz
oraz
Cytat
Fatal error: Call to a member function free() on a non-object in ... on line 46


Próbowałem zmienić połączenie i wszystkie inne linijki w kodzie gdzie jest związek z mysql z obiektowego ( $db = new mysqli) na proceduralne ($db = mysqli_connect) i nie pomaga.

  1. <?php
  2. //utworzenie krótkich nazw zmiennych
  3. $met_szukania = $_POST['met_szukania'];
  4. $wyrazenie = trim($_POST['wyrazenie']);
  5.  
  6. $wyrazenie = trim($wyrazenie);
  7.  
  8. if (!$met_szukania || !$wyrazenie){
  9. echo 'Brak parametrów wyszukiwania, wróć do poprzedniej strony.<br />';
  10. echo "<a href='wyszukaj.php'>Powrót</a>";
  11. }
  12.  
  13. $met_szukania = addslashes($met_szukania);
  14. $wyrazenie = addslashes($wyrazenie);
  15. }
  16. //połączenie z bazą
  17. @ $db = new mysqli('localhost', 'user1', 'user1', 'hurtownia');
  18.  
  19. if (mysqli_connect_errno()){
  20. echo "Błąd: Połączenie z bazą danych nie powiodło się, spróbuj ponownie później.";
  21. }
  22. //zapytanie
  23. $zapytanie = "select * from produkty where " .$met_szukania. "like '%".$wyrazenie."%'";
  24. $wynik = $db->query($zapytanie);
  25.  
  26. $ilosc = $wynik->num_rows;
  27.  
  28. echo "<p>Ilość znalezionych pozycji: ".$ilosc."</p>";
  29.  
  30. for ($i=0; $i<$ilosc; $i++) {
  31. $wiersz = $wynik->fetch_assoc();
  32. echo "<p><strong>".($i+1)." . Produkt: ";
  33. echo stripslashes($wiersz['nazwa']);
  34. echo "<strong><br>Producent: ";
  35. echo stripslashes($wiersz['producent']);
  36. echo "<br>Kategoria: ";
  37. echo stripslashes($wiersz['ID_kat']);
  38. echo "<br>Cena: ";
  39. echo stripslashes($wiersz['cena']);
  40. echo "</p>";
  41. }
  42.  
  43. $wynik->free();
  44. $db->close();
  45. ?>


Ten post edytował mattajah 12.02.2014, 16:35:04
Go to the top of the page
+Quote Post

Posty w temacie


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: 24.12.2025 - 18:05