Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [zend] wyswietlanie polaczonych danych z dwoch tabell
nieraczek
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
MakeArt
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.04.2008

Ostrzeżenie: (0%)
-----


Witam mam problem...wzorowałem się na tym wątku i w modelu mam
  1. <?php
  2. class Projekty extends Zend_Db_Table {
  3.       protected $select = 'projekty';
  4.      
  5.    public function getProjektyRodzajProjektu() {
  6.              
  7.        $select = $this->getAdapter()->select();
  8.        $select->from(array('p' => 'projekty'))->join(array('r' => 'rodzajprojektu'), 'p.IdRodzaju = r.IdRodzaju');
  9.        return $this->getAdapter()->fetchAll($select);
  10.        
  11.    }
  12. }
  13. ?>


a w kontrolerze akcje details
  1. <?php
  2. function detailsAction() {
  3.      $this->view->title = "Szczegóły";
  4.              $model= new Projekty();
  5.            $this->view->projekty = $model->getProjektyRodzajProjektu();
  6.   }
  7. ?>

i nic pusto... zwraca pustą tablice... zapytanie generowane przez model działa w phpmyadmin. Zrobiłem jakiś oczywisty błąd?? Poprzednie sposoby także zwracają mi pustą tablice....
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 04:26