Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Zend framework] baza danych
Forum PHP.pl > Forum > PHP > Frameworki
orideith
Witam Wszystkich mam takie problem, używając Zend FR korzystam z różnych zapytań do bazy większość jest w w Manualu ale niestety pojawia się problem ponieważ nie wiem jak robić bardziej skomplikowane zapytania. Nie jestem w stanie określić jakie na tą chwilę ale mam duzy dosyć projekt przed sobą i nie chce sie obudzić z rekami wiadomo w czym. Najlepiej jak by to było coś w stylu (hipotetycznie)
////
  1. <?php
  2. $db->zapytanie(' jakas tresc SELECT lub np INSERT ');
  3. $wynik->fetchAll();
  4. ?>

////
Czy to w ogóle jest możliwe ?.

Druga sprawa to model. Mam taki kod w modelu
  1. <?php
  2. class wiadomosci extends Zend_Db_Table{
  3. }
  4. }
  5. ?>


wiadomosci jest nazwa tabeli czyli tworze sobie obiekt tabeli
  1. <?php
  2. $tabelka = new wiadomosci(); // jeżeli dobrze myśle
  3. $tabelka->jakies_metody();
  4. ?>


I teraz pytanie troche związane z pierwszym jak wyciągnąć parametry z $tabelka np nazwa jakiejś kolumny albo jak stworzyć jakieś własne zapytanie z poza metod Zend_DB_table.


Mam nadzieje, że za bardzo nie namieszałem.

Pozdrawiam.
Sabistik
Wybacz ale wszystko o czym mówisz jest opisane w manualu.

1) Oczywiście ze jest możliwe. Możesz pisać własne zapytania albo korzystać z pomocniczej klasy Zend_Db_Select

2) Wszystko masz opisane: http://framework.zend.com/manual/en/zend.db.table.html
nospor
Przenosze
orideith
Dobra to Powiedzcie mi jak zrobic takie zapytanie, dwie tabelki
tabelka menu -> id_menu, id_sekcji, kolor, kolejnosc, nazwa_menu
tabelka sekcje-> id_sekcji, nazwa_sekcji
I teraz chce stworzyć takie zapytanie.

SELECT menu.*, sekcje.nazwa_sekcji FROM menu INNER JOIN menu.id_sekcji = sekcje.id_sekcji WHERE sekcje.nazwa_sekcji = "jakas tam nazwa"

Mówiąc wprost chce wybrać z dwóch tabelek nazwe menu i nazwe sekcji do ktorej jest to menu przypisane relacja jeden rekord menu wiele lub jeden rekord / ów sekcji.

Jak to zrobić bez tego zendowego JOIN questionmark.gif? chodzi mi jak to całe zapytanie "wsadzić" do takiego np mysql_query("zapytanie");

Pozdrawiam i czekam na wszelką pomoc.
Sabistik
Cytat
Jak to zrobić bez tego zendowego JOIN questionmark.gif?

.. To po co używasz zf skoro nie chcesz wykorzystywać jego funkcjonalności ?
  1. <?php
  2. $db = Zend_Db::factory('PDO_MYSQL', $params);
  3. $res = $db->fetchAll($sql);
  4. ?>



A tak to powinno wyglądać 'prawidłowo' (pisane z palca, może są jakieś drobne błędy)
  1. <?php
  2. $select = $db->select();
  3. $select->from('menu', 'menu.*');
  4. $select->joinInner('sekcje', 'menu.id_sekcji=sekcje.id_sekcji', 'sekcje.nazwa_sekcji');
  5. $select->where('sekcje.nazwa_sekcji = ?', $jakasTamNazwa);
  6.  
  7. $sql = $select->__toString();
  8. ?>
orideith
. To po co używasz zf skoro nie chcesz wykorzystywać jego funkcjonalności ?

Zle to odbierasz korzystam z jego funkcjonalnosci ale nie wiedziałem jak złożyć zapytanie do tego co podałem. Więc wymyśliłem coś w stylu bezpośredniego zapytania.
wszystkie skrypty zwiazane z baza opierają sie na modelach i dobrze mi sie z tym pracuje ale na to nie znałem odpowiedzi.

Jeszcze raz dzieki, mam nadzieje że w tej materi (db) więcej pytań nie będę miał.

Pozdrawiam i dzieki za poświecomi mi czas.
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.