Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Problem z klasą - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Problem z klasą (/thread-problem-z-klasa)



Problem z klasą - R_Rafalsky - 13-04-2011

Witam,

mam problem z klasą user, do której dołączam klasę db (bazy danych). Przedstawię krok po kroku problem
Kod PHP:
$system->IncludeClass('db');$db = new db($mysql_host,$mysql_user,$mysql_pass); 
Tworzymy klasę bazy danych
Kod PHP:
$system->IncludeClass('user');$user = new user($db); 
Tworzymy klasę użytkownik i dołączamy do niego klasę bazy danych.
Konstruktor wygląda tak:
Kod PHP:
public function _construct(db &$db)
    {
        
$this->db=$db;
    } 
Chcemy wyciągnąć wszystkich użytkowników z bazy danych by przedstawić ich jawnie w tabelce więc
Kod PHP:
$uzytkownicy=$user->GetUsers(); 
metoda GetUsers():
Kod PHP:
    public function GetUsers()
    {
        
$query "SELECT (jakieś tam tabele) FROM users;";
        
$result $this->db->GetQuery($query); // TUTAJ ZGŁASZANY JEST BŁĄD LINIA 57
        
return $result;
    } 
Otrzymuję błąd: Fatal error: Call to a member function GetQuery() on a non-object in (KATALOG)/user.class.php on line 57

jakieś pomysły?


RE: Problem z klasą - Pedro84 - 13-04-2011

Wrzuć kod, bo bez tego to możemy gdybać. Pewnie masz problem z dziedziczeniem albo instancjami klas.


RE: Problem z klasą - trak - 14-04-2011

__construct() zamiast _construct(), bo teraz wywołuje się konstruktor domyślny i nie przypisuje $db do $this->db dlatego ten obiekt jest pusty, a to oznacza że nie ma metody GetQuery().


RE: Problem z klasą - R_Rafalsky - 15-04-2011

@trak: Prawda! Że ja tej literówki nie zauważyłem. Wiedziałem, że gdzieś jakaś literówka lub prosty błąd musi być jednak znaleźć nie umiałem. Dzięki '+' dla Ciebie