Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OOP] Użycie jednej klasy wewnątrz drugiej
tikky
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

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


Witam, 

Proszę wybaczyć jeśli to pytanie jest banalne, ale zaczynam zabawe z obiektami dopiero.


Używam biblioteki EZ_SQL aby pobrać dane z bazy, na przykład:

  1. <?php
  2. $user = $db->get_row("SELECT temperatura FROM dane WHERE id = 2");
  3. echo $user->temperatura;
  4. ?>


i to dziaa, ale chciałbym teraz umieścić takie połączenie z bazą w środku mojej klasy i to już nie działa

  1. <?php 
  2. include('ez_sql.php');
  3.  
  4. class Test
  5.  {
  6.   var $id;
  7.   var $opis;
  8.   var $temperatura;
  9.        
  10.   function __construct($id=null)
  11.   {
  12.   $this->id = $id;
  13.   $this->odczytaj();
  14.   }
  15.        
  16.   function odczytaj() 
  17.   {
  18.      $user = $db->get_row("SELECT temperatura FROM dane WHERE id = 2");
  19.      echo $user->temperatura; 
  20.   }       
  21.  }
  22. ?>


Mam błąd: Fatal error: Call to a member function get_row() on a non-object ..

Co robię źle?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Vielta
post
Post #2





Grupa: Zarejestrowani
Postów: 59
Pomógł: 6
Dołączył: 9.04.2007
Skąd: Szczecin

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


  1. <?php
  2. include('ez_sql.php');
  3.  
  4. class Test
  5. {
  6.  var $id;
  7.  var $opis;
  8.  var $temperatura;
  9.  private $db;
  10.  
  11.  function __construct($db, $id=null)
  12.  {
  13.  $this->id = $id;
  14.  $this->odczytaj();
  15.  $this->db = $db;
  16.  }
  17.      
  18.  function odczytaj()
  19.  {
  20.     $user = $this->db->get_row("SELECT temperatura FROM dane WHERE id = 2");
  21.     echo $user->temperatura;
  22.  }      
  23. }
  24. ?>
Coś takiego?
Go to the top of the page
+Quote Post
plurr
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


  1. <?php
  2. include('ez_sql.php');
  3.  
  4. class Test
  5. {
  6.  protected $_id;
  7.  protected $_db;
  8.  
  9.  function __construct(Ez_Sql $db, $id=null) //
  10.  {
  11.   $this->_id = $id;
  12.   $this->_db = $db;
  13.  
  14.  // zapomiales o kolejnosci, najpierw uzyles metody
  15.  //ktora operuje na niezdefiniowanym obiekcie.
  16.  //Najpierw przypisujesz instancje db do obiektu, a pozniej SQL na obiekcie.
  17.   $this->odczytaj();
  18.  
  19.  }
  20.      
  21.  function odczytaj()
  22.  {
  23.      $sql = "SELECT TEMPERATURA FROM DANE";
  24.      
  25.      if (!empty($this->_id) && is_int($this->_id)) {
  26.           $sql .= " WHERE id = ". $this->_id;
  27.      }
  28.  
  29.     $user = $this->db->get_row($sql);
  30.     echo $user->temperatura;  
  31.     // nie wiem jak wyglada ta biblioteka ez_sql, ale czy zwraca instancje i obiekt 'temperatura' ?
  32.  }      
  33. }
  34. ?>


// sorki, to Vielta podal taki przyklad kodu, a nie autor tematu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował plurr 3.12.2008, 20:50:31
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 13:26