<?php class db { var $connect, $sd; function db() { $this->connect = mysql_connect('localhost', 'root', 'gameforce') OR DIE (\"Nie mogłem połączyć się z MySQL-em\"); } function query($z) { @mysql_query(\"$z\", $this->connect) OR DIE ('Błąd zapytania SQL: <br /><b>'.mysql_errno().' : '.mysql_error().'</b>'); } // function pytanie function num_rows($query) { } function fetch($pytanie) { } } // koniec klasy ?>
Chyba wiadomo jak to działa: mamy konstruktor który przy wywołaniu odrazu otwiera połączenie z bazą danych + pare funkcji
Teraz mam klase do obsługi newsów "news" i chce wyświetlić newsy.
<?php } include_once('./config/db.lib.php'); include_once('./templates/smarty.class.php'); class news { var $db, $tpl; function news() { $this->db = new db; $this->tpl = new smarty; $this->tpl->template_dir = 'templates/tpl'; $this->tpl->compile_dir = 'templates/tpl_c'; } function wyswietl_newsy() { $result = $this->db->query(\"SELECT * FROM `news` ORDER BY `add_date` DESC\"); while($row = $this->db->fetch($result)) { // tutaj sobie robimy różne rzeczy na SMARTY } } } $news = new news; $news->wyswietl_newsy(); ?>
Wydaje mi się że wszystko jest dobrze

Kod
Błąd bazy danych:
Jak widać w klasie DB jest ustawione raportowanie błędów lecz po "Błąd bazy danych:" powinien się wyświetlić komunikat
Po usunięciu warunku OR DIE a także znaku @ przed funkcją dostaje taki komunikat:
Kod
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\WebServ\httpd\aa\config\db.lib.php on line 31
Zaznaczam że zapytanie SQL które wykonuje jest poprawne

Co tu się dzieje

Pozdrawiam