Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Zapytanie sql -> Zend_Db_Table
Forum PHP.pl > Forum > PHP > Frameworki
gazelek
Jestem w trakcie tworzenia takiego przykladowego portalu spolecznosciowego. Stworzylem zapytanie, ktore wypisze wszystkich znajomych danego uzytkownika (w tym przypadku o id=2)

Kod
select u.id,u.imie,u.nazwisko,f.p_id from uzytkownik u,friends f Where f.c_id=2 And u.id=p_id order by f.date


Zapytanie tworzylem pod PhpMyAdmin, wszystko dziala poprawnie (tak jak chce zeby dzialalo:D). Problem zaczyna sie, kiedy chce napisac to zapytanie w kontrolerze. Myslalem nad czyms takim

Kod
$uzytkownik = new Uzytkownik;
$select = $uzytkownik -> select()
            -> from(array("uzytkownik","friends"),array("uzytkownik.id","imie","nazwisko","p_id"))
            -> where("c_id='$id' AND uzytkownik.id=p_id AND o_id=uzytkownik.id")
            -> order("friends.date");
$result = $uzytkownik -> fetchAll($select);
//...dalsza czesc kodu


Po wywolaniu strony otrzymuje blad:
Cytat
exception 'Zend_Db_Table_Select_Exception' with message 'Select query cannot join with another table' in [cut]


Jak sobie z tym poradzic?
batman
Cytat(gazelek @ 24.04.2009, 20:30:54 ) *
Jak sobie z tym poradzic?

Użyć join-a.
gazelek
Kod
$select = $uzytkownik->select()
             ->from(array('u' => 'uzytkownik'),
                    array('id', 'imie', 'nazwisko'))
             ->join(array('f' => 'friends'),
                    'f.c_id = 2 AND u.id = f.p_id');


I ciagle ten sam blad - Select query cannot join with another table
batman
Czyli najprawdopodobniej nie zdefiniowałeś kluczy obcych. Zdefiniuj klucze lub użyj setIntegrityCheck(false)
gazelek
Dziekuje, punkt dla Ciebie smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.