Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Zend_DB_Table a JOIN i SELECT
G3LO
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.08.2007

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


Witam,

próbuję zrealizować za pomocą Zend_DB_Table następujące zapytanie:
  1. SELECT (jakies dane) FROM tab1 T1 JOIN tab2 T2 ON T1.id = T2.fk1

na framework.zend nic nie zostało na ten temat napisane, w API nie mogę znaleźć żadnej metody którą bym podejrzeał
o łączenie tabel.
rowiązanie
  1. <?php
  2. $items = $tab1->fetchAll ();
  3. foreach ($items as $item)
  4. {
  5. $dep_rows = $tab1->getDepandantRowset ();
  6. ..i zapisz gdzies
  7. }
  8. ?>

nie chcę bo do bazy poleci 50+ zapytań podczas gdy wystarczy 1

drugą kwestią która mnie ciekawi to rzutowanie w zapytaniach za pomocą Zend_DB_Table:
jak zrobić np.
  1. SELECT numer FROM samochody
?
fetch robi zawsze SELECT * - co czasem nie jest za bardzo porządane

prosiłbym uprzejmie o informacje o rozwiązaniach powyższych problemach jeśli ktoś takowe posiada.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kosmowariat
post
Post #2





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

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


korzystasz z obiektu Zend_Db_Select (w manualu opisanych jest kilka metod jak go dostać) Zajmijmy się teraz Twoim zapytaniem
  1. SELECT (jakies dane) FROM tab1 T1 JOIN tab2 T2 ON T1.id = T2.fk1

Zakładam że masz już obiekt $select który jest instancją w/w klasy

  1. <?php
  2. $select->from(array('T1'=> 'tab1',array('nazwy_kolumn'));
  3. //nakładasz alias 'T1' na tebele 'tab1' - przekazujesz jako tablicę nazwy kolumn - jeśli przekażesz pustą tablicę
  4. //to nie pobierze żadnej kolumny (przydaje się przy joinach), jeśli chcesz nałożyć aliasy na kolumny to tablicę z nazwami kolumn deklar
    ujesz jako tablicę asocjacyjną gdzie klucz to alias kolumny a wartość to jej fakt
    yczna nazwa array('alias' => 'kolumna')
  5.  
  6. $select->join(array('T2' => 'tab2'), 'T1.id = T2.fk1', array('nazwy_kolumn'));
  7. //pierwsza wartość analogicznie jak przy klauzuli from druga to jest jakby definic
    ja ON trzecia tablica analogicznie jak 2 parametr przy FROM
  8.  
  9. $select->__toString();
  10. //pokaże utworzony sql
  11.  
  12. //no i wykonujesz zapytanie
  13. ?>


SMACZNEGO

Ten post edytował kosmowariat 15.08.2007, 15:30:37
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: 8.10.2025 - 20:23