Witam,
Konstruktorów PHP niemożna przeładowywać (tak są różne triki). Poszukuje jakiegoś profesjonalnie zrobionego przykładu klasy gdzie obiekt powstaje przez wprowadzenie danych do formularza lub odczytu z bazy. Myślałem o zrobieniu tego przez konstruktor z wyborem metody i warunkiem if. Do tego jaka jest "uznawana" metoda zapisu danych klasy w bazie? Zapis wywołany z konstruktora przy odczycie danych z formularza.......

Jeżeli ktoś ma przykład klasy z wprowadzaniem danych z fomularza lub odczytu z bazy danych, załatwiło by to sprawę.

Posuwam się do przodu, dlatego zapytam nieco inaczej. Obiekt klient posiada funkcje readData (odczyt z bazy). Jak w podejściu obiektowym wywołać ją tyle razy ile jest klientów w bazie aby wyświetlić wszystkich? Jedyne co mi wychodzi to "staromodne" i "niepraktyczne" i wogóle "najgorsze" procedury odczytujące bazę danych i dopiero wywołujące funkcje obiektu.

Znalazłem rozwiązanie swojego problemu lecz coś mi umyka. Stworzyłem klasę z funkcja static, problem polega na tym że nie moge się dobrać do teoretycznie zapisywanych zmiennych obiektu w celu ich wyświetlenia.
  1. public static function student_list()
  2. {
  3. $db=dbconnect();
  4. $query="SELECT uczen.id, uczen.imie, uczen.nazwisko, uczen.plec, uczen.urodziny, uczen.telefon, klasa.rok, klasa.litera FROM uczen LEFT JOIN (klasa) ON (klasa.id=uczen.klasa)";
  5. $result=mysql_query($query);
  6. if (!$result)
  7. {
  8. }
  9. $i=0;
  10. while ($key=mysql_fetch_assoc($result))
  11. {
  12. #print $key['imie']; #tutaj wyświetla prawidłowe wartości Podobnie w konstruktoże $this->$imie zwraca wartość
  13. $students[$i]= new student($key['imie'],$key['nazwisko'],$key['plec'],$key['litera'],$key['urodziny'],$key['telefon'],$key['id'],$key['rok']);
  14. $i++;
  15. }
  16. return $students;
  17. }
  18. public function show()
  19. {
  20. print $this->imie;
  21. }

  1. <?php
  2. include 'modules/global.php';
  3. include 'modules/class.php';
  4.  
  5. $table =student::student_list();
  6. #$table[0]->imie = 'name';
  7. print $table[0]->imie; #nie wyświetla żadnej wartości; zdjęcie komentarza z lini wcześniejsze daje oczekiwany wynik
  8. $table[0]->show();
  9. ?>


Trochę za dużo znaków $ w konstruktorze.