Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]klasy, a łączenie się z bazą
Forum PHP.pl > Forum > Przedszkole
Th0e
Witam. Mam problem z wyświetleniem rekordów z bazy danych na stronie. Staram się pisać obiektowo.

błąd:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Th0e_Board\class.php on line 21

Oto zawartość pliku: class.php

  1. <?php
  2. class Db
  3. {
  4. public function connect()
  5. {
  6.  
  7. mysql_connect("localhost","root","") or die(mysql_error()."Nie mozna polaczyc sie z baza danych. Prosze chwile odczekac i sprobowac ponownie.");
  8. mysql_select_db("th0eboard") or die(mysql_error()."Nie mozna wybrac bazy danych.");
  9. }
  10. }
  11. $Db = new Db();
  12.  
  13.  
  14.  
  15. class NajwieksiPosterzy extends Db
  16. {
  17.  
  18. public function posterzy()
  19. {
  20. $najwieksiposterzy = mysql_query("SELECT * FROM `user` ORDER BY `postow` ASC LIMIT=3");
  21. while($posterzy = mysql_fetch_array($najwieksiposterzy))
  22. {
  23. echo ''. $posterzy['nick'] .'&nbsp;'. $posterzy['postow'] .'<br />';
  24. }
  25. }
  26. }
  27.  
  28. $NajwieksiPosterzy = new NajwieksiPosterzy();
  29.  
  30. ?>


21 linijka to:

  1. $najwieksiposterzy = mysql_query("SELECT * FROM `user` ORDER BY `postow` ASC LIMIT=3");


Dane staram się wyświetlić w index.php takim sposobem:

  1. <div id="login">najwięksi posterzy<br /> <?php $Db->connect(); $NajwieksiPosterzy->posterzy(); ?> </div>


nospor
Masz blad zapytania.... jak wyswietlac bledy zapytania masz napisane tu
Temat: Jak poprawnie zada pytanie

sajegib
  1. [/php][php]$najwieksiposterzy = mysql_query("SELECT * FROM `user` ORDER BY `postow` ASC LIMIT=3");


sprawdzić zapytanie, coś tutaj nie gra, a konkretnie to zamień LIMIT = 3 na LIMIT 3

pozatym to jak się starasz obiektowo, to poczytaj o konstruktorach i zmienić metodę

  1. public function connect()


na

  1. public function __construct();
Spawnm
Twój kod nie ma nic wspólnego z programowaniem obiektowym.
Czemu klasa Db zajmuje sie sesjami? Czemu mysql_* a nie pdo lub mysqli ?
Co robi echo w modelu?

Daj:
  1. mysql_query($sql) or die('BŁĄD:'.mysql_error());
Th0e
Dzięki. Zamiast limit=3 powinno być limit 3

błąd naprawiony. temat do zamknięcia
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.