Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][PHP]klasy, a łączenie się z bazą
Th0e
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


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>


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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



--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sajegib
post
Post #3





Grupa: Zarejestrowani
Postów: 352
Pomógł: 59
Dołączył: 16.01.2013

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


  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();


Ten post edytował sajegib 5.05.2013, 10:55:20
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


Dzięki. Zamiast limit=3 powinno być limit 3

błąd naprawiony. temat do zamknięcia
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 23:55