![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Odnośnie tego co pisał batman i thm w innym moim poście chciałbym zrobić teraz poprawne pod względem technicznym wyświetlanie połączonych danych z dwóch tabel.
Powiem co zrobiłem: W folderze 'models' utworzyłem pliki: Ksiazki.php: Kod <?php class Ksiazki extends Zend_Db_Table { protected $_name = 'ksiazki'; protected $_primary = 'id_ksiazki'; } Autorzy.php: Kod <?php class Autorzy extends Zend_Db_Table { protected $_name = 'autorzy'; protected $_primary = 'id_autora'; } Natomiast w pliku IndexController.php mam: Kod public function indexAction() { $db = Zend_Registry::get('dbAdapter'); $select = $db->select() ->from(array('k' => 'ksiazki')) ->join(array('a' => 'autorzy'), 'k.id_autora = a.id_autora'); $this->view->lista = $db->fetchAll($select); } A w innym pliku wyświetlam wyniki zapytania. Wszystko działa, ale jak widzicie w pliku 'IndexController.php' nie robię chyba zbyt poprawnym sposobem przynajmniej takie odniosłem wrażenie po wypowiedzi batmana i thm?? Więc jak to powinno wyglądać prawidłowo ? Jak rozumiem powinno być w pliku IndexController.php coś takiego: Kod public function indexAction() { $ksiazkiTabela = new Ksiazki(); $autorzyTabela = new Autorzy(); } Ale co dalej - jak zrobić SELECTA ? Bo jak zrobię tak jak na tej stronie: http://framework.zend.com/manual/en/zend.d...t.building.join // Create the Zend_Db_Select object $select = $db->select(); to wrócę przecież do tego sposobu wyświetlania, który mam obecnie, a który nie jest podobno poprawny. Ten post edytował nieraczek 23.10.2008, 18:25:41 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dziwne, bo jeden sposób nie działa, a drugi który opisałem niżej działa (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Więc w modelu mam:
W kontrolerze:
echo selecta dało wynik: Kod SELECT `k`.*, `a`.* FROM `ksiazki` AS `k` INNER JOIN `autorzy` AS `a` ON k.id_autora = a.id_autora Ale jak w modelu zrobię tak:
A w kontrolerze tak:
To wszystko działa i poprawnie się wyświetla, jednak nie rozumiem czemu tamten sposób nie działa, nawet jak w tamtym sposobie tak jak tu zwrócę $select i w kontrolerze tak jak tu zrobię fetchAll() to i tak nie działa, ta funkcja select() ZF ma jakieś błędy czy co ? Ten post edytował nieraczek 24.10.2008, 08:54:41 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 23:13 |