![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 1.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
W jaki sposób pobrać dane z kilku tabel za pomocą jednego zapytania w Zendzie? W tej chwili mam dwie tabele: produkty i dostępność. W tabeli dostępność są różne rodzaje dostępności np. na magazynie, na zamówienie itp. W tabeli produkty jest kolumna dostępność_id, dzięki której każdy produkt ma przypisaną dostępność. Tylko nie wiem w jaki sposób zrobić zapytanie, które zrobi mi join'a łaczącego te tabele. I nie chodzi o treść zapytania gdyż myślę, że poniższe jest dobrze wpisane w kontroler:
tylko chodzi o wyznaczanie tabel, z których framework ma pobierać dane, gdyż w tej chwili pobiera tylko z tabeli wpisane w modelu "Products":
a nie z $selecta którego opisałem powyżej. I mam ten problem w każdym przypadku, nie mówiąc o przypadkach kiedy będę chciał pobrać dane z więcej niż 2 tabel. Bardzo proszę o pomoc, gdyż jestem początkujący w Zendzie i php ogólnie i nie mogę sobie sam poradzić z tym problemem. Ten post edytował spokz 7.04.2010, 19:09:03 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 313 Pomógł: 24 Dołączył: 9.08.2008 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
i teraz aby pobrać te rekordy możesz np zrobić
ewentualnie
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 1.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Po modyfikacjach wygląda to tak:
i pojawia się niestety błąd:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 313 Pomógł: 24 Dołączył: 9.08.2008 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 1.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc. Ale co do manuala to nie wiem (IMG:style_emoticons/default/smile.gif)
http://framework.zend.com/search?query=set...p;search=Search! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie lepiej tak:
I w ogole w sumie nie lepiej dla ww. sytuacji po prostu zrobic typ wyliczeniowy w tabeli 'produkty'? Po co dodatkowy JOIN skoro mozna to bardzo obrazowo (bo slowami) opisac poprzez dostepne elementy dla kolumny (plus walidacja na poziomie insertow do bazy)? Ten post edytował chlebik 8.04.2010, 23:12:23 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 1.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
I w ogole w sumie nie lepiej dla ww. sytuacji po prostu zrobic typ wyliczeniowy w tabeli 'produkty'? Po co dodatkowy JOIN skoro mozna to bardzo obrazowo (bo slowami) opisac poprzez dostepne elementy dla kolumny (plus walidacja na poziomie insertow do bazy)? A mógłbyś na moim przykładzie zilustrować jak to zrobić? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A co tu do mowienia - na 99% zakladam, ze uzywasz MySQLa - dodatkowa kolumna 'dostepnosc' jako pole typu ENUM z wartosciami 'w magazynie','oczekiwanie','brak' i po temacie. Przy wkladaniu kolejnego rekordu do bazy bedziesz tez musial podac od razu dostepnosc produktu (byc moze przydaloby sie tutaj umozliwic wkladanie wartosci NULL). I po sprawie.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 1.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dobra rzecz, ale jeśli w tabeli produkty mam oprócz dostępności jeszcze inne kolumny będące kluczami obcymi dla innych tabel np. marka, gwarancja to czy to będzie tak samo wydajne? Poza tym nigdy wcześniej nie bawiłem się Enumami.
Btw. używam Postgresa. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 16:07 |