Piszę frameworka i zabrałem się za sterownik baz danych. Niestety jest problem, bo wyświetla tylko pierwszy znak wyniku . Podaję listingi:
Kontroler
<?php class welcome extends Controller { var $test; function index() { $this->modelik = $this->load->model('modelik'); $query = $this->modelik->test(); function szescian($n) { return $n*$n*$n; } foreach($query as $this->test) { } } function elo() { } } ?>
Model:
<?php class modelik extends Model { function test() { return $this->db->query("SELECT * FROM `test` WHERE 1"); } } ?>
Sterownik db(tylko funkcja query):
<?php function query($query, $typ = assoc) { self::$counter++; /* Jeżeli wystąpiły błędy w połączeniu anulujemy wykonywanie zapytania */ if($dberrors == true) { error('[lib db] Nie można wykonać zapytania, gdyż połączenie z bazą danych nie zostało poprawnie nawiązane'); } /* Podmieniamy tag _PREFIX_ na prefix zapisany w ustawieniach skryptu */ /* Jeżeli zapytanie zwróciło błąd, wyświetlamy je */ if(!$zapytanie) { } /* Wybór typu tablicy, którą ma zwrócić metoda assoc - mysql_fetch_assoc row - mysql_fetch_row query - zwraca samo mysql_query */ switch($typ) { case 'assoc': break; case 'row': break; case 'query': return $zapytanie; break; } ?>
Loader(tylko funkcja ładująca model)
<?php function model($path) { { error('[lib loader] Nie mogę znaleść modelu ' . $path . '! Prawdopodobnie nie ustawiłeś ścieżki dostępu do aplikacji w ustawieniach systemowych (configs/system.php)'); } include(APP_PATH . 'models/' . $path . '.php'); $model = new $path(); return $model; } ?>
No i zamiast otrzymać wynik (z kolumny test) l-testowanie, to otrzymuję:
Cytat
Array ( [id] => 1 [tekst] => 0 ) 11dd