plik db.mysql.php
<? require_once(\"db.mysql.php\"); class licznik { // Definiowanie klasy licznik var $licznik; // Licznik z MySQL var $db_query; // Zapytanie MySQL var $db_host = \"localhost\";// Adres bazy MySQL var $db_name = \"xxxx\"; // Nazwa bazy MySQL var $db_user = \"xxxx\"; // Nazwa użytkownika bazy MySQL var $db_pass = \"xxxx\"; // Hasło użytkownika bazy MySQL var $db_table = \"xxxx\"; // Tabela danych licznika w bazie MySQL var $zabezpieczenie = FALSE; // Zabezpieczenie przed odœwieżaniem var $cookie_name = \"pwas_licznik\"; // Nazwa ciasteczka var $tekst_licznika = \"Stan licznika: \"; // Treœć tekstu wyœwietlanego przed licznikiem function licznik() { // Definicja konstruktora dla PHP4 (w PHP5 __construct) $db = new DB($this->db_host, $this->db_name, $this->db_user, $this->db_pass); } function zwieksz_licznik() { // Definicja funkcji zwiększającej licznik if ($this->zabezpieczenie == TRUE) { // Jeżeli jest zabezpieczenie przed odœwieżaniem $this->db_query = \"UPDATE \" . $this->db_table . \" SET licznik = licznik + 1;\"; // Wtedy utwórz zapytanie zwiększające stan licznika $db->query($this->db_query); // I wykonaj je } } else { // A jeżeli nie ma zabezpieczenia $this->db_query = \"UPDATE \" . $this->db_table . \" SET licznik = licznik + 1;\"; // Wtedy utwórz zapytanie zwiększające stan licznika $db->query($this->db_query); // I wykonaj je } } function wyswietl_licznik() { // Definicja funkcji wyœwietlającej aktualny stan licznika $this->db_query = \"SELECT * FROM \" . $this->db_table . \";\"; // Utworzenie zapytania pobierającego wartoœć licznika $this->licznik = $db->query($this->db_query); // Pobranie wartoœci licznika $db->close(); // Zamknięcie połączenia z bazą danych } } // Wykorzystanie $przykladowy_licznik = new licznik(); // Utworzenie licznika $przykladowy_licznik->zwieksz_licznik(); // Zwiększenie wartoœci licznika $przykladowy_licznik->wyswietl_licznik(); // Wyœwietlenie licznika ?>
i oto kod licznika:
plik block.licznik.php
<? require_once(\"db.mysql.php\"); class licznik { // Definiowanie klasy licznik var $licznik; // Licznik z MySQL var $db_query; // Zapytanie MySQL var $db_host = \"localhost\";// Adres bazy MySQL var $db_name = \"xxx\"; // Nazwa bazy MySQL var $db_user = \"xxx\"; // Nazwa użytkownika bazy MySQL var $db_pass = \"xxxx\"; // Hasło użytkownika bazy MySQL var $db_table = \"xxxxxxxxxxxx\"; // Tabela danych licznika w bazie MySQL var $zabezpieczenie = FALSE; // Zabezpieczenie przed odœwieżaniem var $cookie_name = \"pwas_licznik\"; // Nazwa ciasteczka var $tekst_licznika = \"Stan licznika: \"; // Treœć tekstu wyœwietlanego przed licznikiem function licznik() { // Definicja konstruktora dla PHP4 (w PHP5 __construct) $db = new DB($this->db_host, $this->db_name, $this->db_user, $this->db_pass); } function zwieksz_licznik() { // Definicja funkcji zwiększającej licznik if ($this->zabezpieczenie == TRUE) { // Jeżeli jest zabezpieczenie przed odœwieżaniem $this->db_query = \"UPDATE \" . $this->db_table . \" SET licznik = licznik + 1;\"; // Wtedy utwórz zapytanie zwiększające stan licznika $db->query($this->db_query); // I wykonaj je } } else { // A jeżeli nie ma zabezpieczenia $this->db_query = \"UPDATE \" . $this->db_table . \" SET licznik = licznik + 1;\"; // Wtedy utwórz zapytanie zwiększające stan licznika $db->query($this->db_query); // I wykonaj je } } function wyswietl_licznik() { // Definicja funkcji wyœwietlającej aktualny stan licznika $this->db_query = \"SELECT * FROM \" . $this->db_table . \";\"; // Utworzenie zapytania pobierającego wartoœć licznika $this->licznik = $db->query($this->db_query); // Pobranie wartoœci licznika $db->close(); // Zamknięcie połączenia z bazą danych } } // Wykorzystanie $przykladowy_licznik = new licznik(); // Utworzenie licznika $przykladowy_licznik->zwieksz_licznik(); // Zwiększenie wartoœci licznika $przykladowy_licznik->wyswietl_licznik(); // Wyœwietlenie licznika ?>
I gdy uruchamiam skrypt licznika wyskakuje bł±d:
Kod
Fatal error: Call to a member function on a non-object in C:\OOCMS\block.licznik.php on line 31
Linia 31:
<?php $db->query($this->db_query); // I wykonaj je ?>
Nie rozumiem gdzie jest bł±d. Czy kto¶ pomoże rozwi±zać problem?
Pozdro
alfanick
==============================================
TEMAT NIE AKTUALNY PORADZIŁEM SOBIE, NIE ZDEFINIOWAŁEM ZMIENNEJ