Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]wyjatek z db table
Forum PHP.pl > Forum > PHP > Frameworki
elmozaur
witam moj problem jest taki:

w modelu zadaje pytanie o obrazki i ich tlumaczenia (zlaczenie tabel pl i en)
  1. $select = $this->select()
  2. ->setIntegrityCheck(false)
  3. ->from(array("gi" => "galeria_img"), array("*"))
  4. ->join(array("gil" => "galeria_img_lang"),
  5. 'gi.img_id = gl.l_img_id')
  6. ->where("gi.g_id = ?", $id)
  7. ->where("gil.lang = ?", $lang)
  8. ;


i teraz jesli tabela eng istnieje to niema problemu niestety w sytuacji gdy user w adminie nie zrobil jeszcze tlumaczenia (wpis o okreslonym id nie istnieje) takie zapytanie sie sypie.

pytanie:
jak zlapac wyjatek z czegos takiego i jesli wystapi to zadac takie pytanie
  1. $select = $this->select()
  2. ->from(array("gi" => "galeria_img"), array("*"))
  3. ->where("g_id = $id")
  4. ;


staram sie to wsadzic w klamry try ale nie wychodzi cos..

dziekuje i pozdrawiam
G
KrzysiekWildfire
spróbuj z left join - powinno pomóc.
elmozaur
niestety zendowe joinLeft tez sobie nie radzi
melkorm
No ale przecież masz błąd w zapytaniu wink.gif bo nie masz tam tabelki / aliasu "gl"
elmozaur
faktycznie przez kombinowanie zrobilem blad ale po poprawieniu na :
  1. $select = $this->select()
  2. ->setIntegrityCheck(false)
  3. ->from(array("gi" => "galeria_img"), array("*"))
  4. ->joinLeft(array("gil" => "galeria_img_lang"),
  5. 'gi.img_id = gil.l_img_id')
  6. ->where("gi.g_id = ?", $id)
  7. ->where("lang = ?", $lang)
  8. ;
  9.  
  10. $row = $this->fetchAll($select)->toArray();

zapytanie dziala tylko gdy mozna zrobic join. jesli nie to robi sie wyjatek
melkorm
A może pokażesz ten wyjątek?

Cytat
->where("lang = ?", $lang)


Tutaj przypadkiem prefiksu nie powinno być?
elmozaur
problem rozwiazany !
wszystko co zle znajdowalo sie tutaj:

  1. $row = $this->fetchRow($select)->toArray();


jesli left join zwraca nic a ja chcialem robic z tego array to sie sypalo. teraz jest gitara. raz jeszcze dziekuje i pozdrawiam
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.