Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [zend] wyswietlanie polaczonych danych z dwoch tabell
nieraczek
post 23.10.2008, 18:22:39
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
batman
post 24.10.2008, 08:55:09
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Masz jakieś dziwne problemy. U mnie działa to bez żadnych cyrków winksmiley.jpg
Możliwe, że jest jakiś błąd w ZF, możliwe jest też to, że z powodu błędu w kodowaniu danych wysyłanych do bazy i samej bazy. Powodów może być wiele.


edit

@bigZbig
To nie ma znaczenia, w takim sensie jak Ty to podajesz. Jednak Twój post nakierował mnie na problem.

Wstaw do modelu i będzie działać. Nie zauważyłem, że robisz fetchAll na obiekcie modelu, a nie na adapterze.
  1. <?php
  2. $select = $this->getAdapter()->select();
  3. $select->from(array('k' => 'ksiazki'))->join(array('a' => 'autorzy'), 'k.id_autora = a.id_autora');
  4. return $this->getAdapter()->fetchAll($select);
  5. ?>


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 12:36