Jak w temacie. Oto kod klasy (mojej) do obsługi MySQLa:
plik db.mysql.php
  1. <?
  2. require_once(&#092;"db.mysql.php\");
  3. class licznik { // Definiowanie klasy licznik
  4. var $licznik; // Licznik z MySQL
  5. var $db_query; // Zapytanie MySQL
  6. var $db_host = &#092;"localhost\";// Adres bazy MySQL
  7. var $db_name = &#092;"xxxx\"; // Nazwa bazy MySQL
  8. var $db_user = &#092;"xxxx\"; // Nazwa użytkownika bazy MySQL
  9. var $db_pass = &#092;"xxxx\"; // Hasło użytkownika bazy MySQL
  10. var $db_table = &#092;"xxxx\"; // Tabela danych licznika w bazie MySQL
  11. var $zabezpieczenie = FALSE; // Zabezpieczenie przed odœwieżaniem
  12. var $cookie_name = &#092;"pwas_licznik\"; // Nazwa ciasteczka
  13. var $tekst_licznika = &#092;"Stan licznika: \"; // Treœć tekstu wyœwietlanego przed licznikiem
  14. function licznik() { // Definicja konstruktora dla PHP4 (w PHP5 __construct)
  15. $db = new DB($this->db_host,
  16.  $this->db_name,
  17.  $this->db_user,
  18.  $this->db_pass);
  19.  
  20. }
  21. function zwieksz_licznik() { // Definicja funkcji zwiększającej licznik
  22. if ($this->zabezpieczenie == TRUE) { // Jeżeli jest zabezpieczenie przed odœwieżaniem
  23. if (!isset($_COOKIE[$this->cookie_name])) { // I jeżeli nie dodano jeszcze
  24. $this->db_query = &#092;"UPDATE \" . $this->db_table . \" SET licznik = licznik + 1;\"; // Wtedy utwórz zapytanie zwiększające stan licznika
  25. $db->query($this->db_query); // I wykonaj je
  26. setcookie($this->cookie_name, $this->cookie_name, time()+300); // Dodaj cookie na 5 minut
  27. } 
  28.  
  29. } else { // A jeżeli nie ma zabezpieczenia
  30.  $this->db_query = &#092;"UPDATE \" . $this->db_table . \" SET licznik = licznik + 1;\"; // Wtedy utwórz zapytanie zwiększające stan licznika
  31.  $db->query($this->db_query); // I wykonaj je
  32. }
  33. }
  34. function wyswietl_licznik() { // Definicja funkcji wyœwietlającej aktualny stan licznika
  35. $this->db_query = &#092;"SELECT * FROM \" . $this->db_table . \";\"; // Utworzenie zapytania pobierającego wartoœć licznika
  36. $this->licznik = $db->query($this->db_query); // Pobranie wartoœci licznika
  37. echo $this->tekst_licznika . $this->licznik[0]['licznik']; // Wyœwietlenie stanu licznika
  38. $db->close(); // Zamknięcie połączenia z bazą danych
  39. }
  40. }
  41.  
  42. // Wykorzystanie
  43. $przykladowy_licznik = new licznik(); // Utworzenie licznika
  44. $przykladowy_licznik->zwieksz_licznik(); // Zwiększenie wartoœci licznika
  45. $przykladowy_licznik->wyswietl_licznik(); // Wyœwietlenie licznika
  46.  
  47. ?>


i oto kod licznika:
plik block.licznik.php
  1. <?
  2. require_once(&#092;"db.mysql.php\");
  3. class licznik { // Definiowanie klasy licznik
  4. var $licznik; // Licznik z MySQL
  5. var $db_query; // Zapytanie MySQL
  6. var $db_host = &#092;"localhost\";// Adres bazy MySQL
  7. var $db_name = &#092;"xxx\"; // Nazwa bazy MySQL
  8. var $db_user = &#092;"xxx\"; // Nazwa użytkownika bazy MySQL
  9. var $db_pass = &#092;"xxxx\"; // Hasło użytkownika bazy MySQL
  10. var $db_table = &#092;"xxxxxxxxxxxx\"; // Tabela danych licznika w bazie MySQL
  11. var $zabezpieczenie = FALSE; // Zabezpieczenie przed odœwieżaniem
  12. var $cookie_name = &#092;"pwas_licznik\"; // Nazwa ciasteczka
  13. var $tekst_licznika = &#092;"Stan licznika: \"; // Treœć tekstu wyœwietlanego przed licznikiem
  14. function licznik() { // Definicja konstruktora dla PHP4 (w PHP5 __construct)
  15. $db = new DB($this->db_host,
  16.  $this->db_name,
  17.  $this->db_user,
  18.  $this->db_pass);
  19.  
  20. }
  21. function zwieksz_licznik() { // Definicja funkcji zwiększającej licznik
  22. if ($this->zabezpieczenie == TRUE) { // Jeżeli jest zabezpieczenie przed odœwieżaniem
  23. if (!isset($_COOKIE[$this->cookie_name])) { // I jeżeli nie dodano jeszcze
  24. $this->db_query = &#092;"UPDATE \" . $this->db_table . \" SET licznik = licznik + 1;\"; // Wtedy utwórz zapytanie zwiększające stan licznika
  25. $db->query($this->db_query); // I wykonaj je
  26. setcookie($this->cookie_name, $this->cookie_name, time()+300); // Dodaj cookie na 5 minut
  27. } 
  28.  
  29. } else { // A jeżeli nie ma zabezpieczenia
  30.  $this->db_query = &#092;"UPDATE \" . $this->db_table . \" SET licznik = licznik + 1;\"; // Wtedy utwórz zapytanie zwiększające stan licznika
  31.  $db->query($this->db_query); // I wykonaj je
  32. }
  33. }
  34. function wyswietl_licznik() { // Definicja funkcji wyœwietlającej aktualny stan licznika
  35. $this->db_query = &#092;"SELECT * FROM \" . $this->db_table . \";\"; // Utworzenie zapytania pobierającego wartoœć licznika
  36. $this->licznik = $db->query($this->db_query); // Pobranie wartoœci licznika
  37. echo $this->tekst_licznika . $this->licznik[0]['licznik']; // Wyœwietlenie stanu licznika
  38. $db->close(); // Zamknięcie połączenia z bazą danych
  39. }
  40. }
  41.  
  42. // Wykorzystanie
  43. $przykladowy_licznik = new licznik(); // Utworzenie licznika
  44. $przykladowy_licznik->zwieksz_licznik(); // Zwiększenie wartoœci licznika
  45. $przykladowy_licznik->wyswietl_licznik(); // Wyœwietlenie licznika
  46.  
  47. ?>


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:
  1. <?php
  2.  $db->query($this->db_query); // I wykonaj je
  3. ?>

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