Chcę mieć klasę Model, która przetrzymywałaby w tablicy obiekty klasy atrybut. Potem mógłbym z tego ładnie sobie generować formularz lub podstawowe zapytania do SQLa.
Mam problem z zadeklarowaniem tablicy w klasie Model. W funkcji dodaj_atrybut elementy nie zapisują się.
Z góry dziękuję za pomoc.
<?php /* * class: Atrybut * name: nazwa atrybutu uzywana w php * name_in_db: nazwa atrybutu w bazie danych * sql_type: typ w notacji sql * form: tresc elementu (html) w formularzu np. <input ... /> */ class Atrybut { // var $name, $name_in_db, $sql_type, $form; public function __construct() { $this->name = ''; $this->name_in_db = ''; $this->sql_type = ''; $this->form = ''; } } class Model { //tablica atrybutow public function __construct() { } public function dodaj_atrybut($name,$name_in_db,$sql_type,$form) { $atr = new Atrybut; $atr->name = $name; $atr->name_in_db = $name_in_db; $atr->sql_type = $sql_type; $atr->form = $form; //pokazuje 1111, za kazdym razem pokazuje, ze $atrybuty nie sa zadeklarowane $atrybuty[$atrybuty_l] = $atr; } public function lista_atrybutow() { //echo $atrybuty_l; // foreach ($atrybuty as $a) for($i=0;$i<=$atrybuty_l;$i++) { '; Nazwa w bazie danych: '.$a->name_in_db. '; Typ SQL: '.$a->sql_type. '; Formularz: '.$a->form; } } } $post = new Model; $post->dodaj_atrybut('nazwa', 'name', 'VARCHAR(10)', '<input type=""/>'); $post->dodaj_atrybut('nazwa', 'name', 'VARCHAR(10)', '<input type=""/>'); $post->dodaj_atrybut('nazwa', 'name', 'VARCHAR(10)', '<input type=""/>'); $post->dodaj_atrybut('nazwa', 'name', 'VARCHAR(10)', '<input type=""/>'); $post->lista_atrybutow(); ?>
Wynik:
1111 Nazwa: ; Nazwa w bazie danych: ; Typ SQL: ; Formularz: