Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Automatyczne wypełnianie obiektów danymi z bazy
Forum PHP.pl > Forum > PHP > Object-oriented programming
Xaviere
Hi!
Mam sobie bazę z ekwipunkiem.
Chcę aby wszystkie pola zostały pobrane i wpisane do obiektów.
Czyli:
$nazwa_z_bazy = pole_z_bazy = wartosc_pola_z_bazy;
Da się to jakoś zrobić?
Prosiłbym o jakiś prosty przykład, ale nie o linki do angielskich tutków, bo wstyd się przyznać, ale słabo rozumiem angielski. blinksmiley.gif
Moja klasa narazie wygląda tak:
CODE
class ekwipunek{
public: $cena;
public: $plan_cena;
public: $max_premia;
public: $typ_materialu;
public: $ilosc_materialu;
public: $opis;













}
class bron extends ekwipunek{
public: $obrazenia;
public: $typ_broni;







}
atomek4
Cześć,
nie wiem czy oto chodzi, ale:

  1. <?php
  2. class ekwipunek{
  3. public $cena;
  4. public $plan_cena;
  5. public $max_premia;
  6. public $typ_materialu;
  7. public $ilosc_materialu;
  8. public $opis;
  9. }
  10.  
  11. class bron extends ekwipunek{
  12. public $obrazenia;
  13. public $typ_broni;
  14. }
  15.  
  16. $x = new ekwipunek();
  17. $x-> opis = "Opis produktu z bazy";
  18. //itd wszystkie pola
  19.  
  20.  
  21. //test
  22. echo $x->opis;
  23.  
  24. ?>

Chociaż lepiej może jakiś konstruktor wprowadzić?
Poza tym nie ma : po specyfikatorach dostępu, to nie C++ smile.gif

O programowaniu obiektowym w PHP5, możesz coś znaleźć np. tutaj i ewentualnie tutaj
Xaviere
Ekhm, tak to ja sobie mogę.
A jak mam kilkaset takich przedmiotów?;]
Ja chcę aby to się automatycznie z bazą robiło:)
jastu
Po jakimś czasie pisania aplikacji w php doszedłem do wniosku że jest ono tylko od zarządzania wyświetlaniem danych... ale konkretnie

  1. <?php
  2. class Dupa
  3. {
  4.  
  5. private $data;
  6.  
  7. public function __construct($id = false)
  8. {
  9.  if($id != false) 
  10.  {
  11.  $this->getData($id);
  12.  }
  13. }
  14.  
  15. private function getData($id)
  16. {
  17. // zapytanie do bazy które zwraca objekt result,
  18. // a jego metoda tablicę w postaci $array('nazwa_pola'=>$wartość_pola,'nazwa_pola2'=>$wartość_pola2 )
  19. // przedstawiającego rekord naszego obiektu, wtedy ...
  20. $this->db->where('kolumna_id_tabeli',$id)->from('nazwa_tabeli');
  21. $this->data = $this->db->run()->result_row();
  22. }
  23.  
  24. // i teraz sztuczka
  25.  
  26. // pobieranie danych : $name jako nazwa kolumny tabeli i metoda ta zwraca nam wart
    ość tego pola
  27. // przykład : echo $objekt->własność;
  28.  
  29. public function __get($name)
  30. {
  31. return (isset($this->data[$name]))$this->data[$name] : false ;
  32. }
  33.  
  34.  
  35. // zapisanie do bazy jeszcze prościej
  36.  
  37. public function save()
  38. {
  39.  // zakładam że korzystamy z Active Record
  40. $this->db->insert('nazwa_tabeli',$this->data);
  41. }
  42.  
  43. // a aktualizacja danych.....gdzie $id_obj to kolumna określająca unikatowy rekord dla naszego obiektu
  44. public function update()
  45. {
  46. if($this->id_obj != false)
  47. {
  48. return $this->db->where('kolumna_id_tabeli',$this->id_obj)->update('nazwa_tabeli',$this->data);
  49. }
  50. else
  51. {
  52. return false;
  53. }
  54. }
  55.  
  56. }
  57.  
  58.  
  59. Przyk&#322;ad 1
  60.  
  61. $dupa = new Dupa();
  62. $dupa->pole_tabeli1 = 'boli';
  63. $dupa->pole_tabeli2 = 'piecze';
  64. $dupa->save();
  65.  
  66. Przyk&#322;ad 2
  67.  
  68. $dupa = new Dupa(32);
  69. $dupa->pole_tabeli2 = 'nie_boli';
  70. $dupa->update();
  71.  
  72. ?>


mam nadzieję że pomoże. Klasy definiuj jak chcesz, a składowe zadbają o siebie same.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.