Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana]problem z zapytaniem
grzes999
post
Post #1





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

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


Mam mały problem z zapytaniem. Załóżmy że mam dwie tabele, w jednej mam: id,obiekt a w drugiej inne_id i id_obiektu. Czyli tabele są połączone poprzez id obiektu. I teraz jeden obiekt może być kilka razy w drugiej.I teraz jak piszę:
  1. DB::select()->from('ogloszenie_wyp')->join('ogloszenie')->on('id_ogl', '=', 'id_ogloszenia')->execute();

to pobiera mi się tylko jedna wartość z drugiej tabeli a potrzebuję wszystkie. Proszę o pomoc.

Ten post edytował grzes999 27.03.2012, 23:46:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To w takim razie pchaj to jako tablicę, czyli where('pole', 'IN', TABLICA_Z_ID_WYPOSAŻENIA) (IMG:style_emoticons/default/smile.gif)
U Ciebie nie jest bowiem JOINowanie problemem, ale kryterium wyszukiwawcze (IMG:style_emoticons/default/wink.gif)
Twoje zapytanie więc to...
1. Jeśli jest podane w kryteriach wyposażenie dorób join na tabelę z wyposażeniem
2. Jeśli już zjoinowałes, dorzuć kryterium wyszukiwawcze, gdzie id_wyposażenia wybranego pchniesz jako tablicę do where('id_wyposazenia', 'in', $tablica_wybranych_id)
3. Dodatkowo pogrupuj to po id_pokoju lub id obiektu, zależnie co chcesz pokazać.
Tu następuje rozwidlenie bo mozna do sprawy podejść na 2 sposoby:
4.1. Nie muszą wystapić wszystkie kryteria wyszukiwawcze, ale musi być trafione choć jedno.
a. tylko order malejacy po zliczonej ilości różnych kryteriów (kilka pokoi w jednym obiekcie to kilka trafionych a ma być w takim wypadku zliczone jako 1 a nie kilka)
4.2. Muszą wystąpić wszystkie kryteria:
a. tu jest zabawa (IMG:style_emoticons/default/smile.gif) Musisz policzyć ile masz kryteriów wyszukiwawczych dla każdego obiektu (znów uwaga jak w alternatywnym podejściu. Kilka trafień w to samo kryterium = 1, anie przypuśćmy 5) i wybrać te, gdzie liczba ta jest równa ilości kryteriów w zapytaniu. Having się kłania (IMG:style_emoticons/default/wink.gif)

Jak rozwiązać kwestię wyposażenia? Prosto... Albo z cache, albo na początku skryptu pobierz/utwórz tablicę gdzie masz inna tablicę typu klucz_id => wyposażenie. Teraz z formularza pobierasz id wybranych elementów wyposażenia. Dla pewności sprawdź, czy Ci ktoś nie spreparował formularza i zrób częśc wspólną tego co przyszło z formularza oraz wzorcowych. array_intersect przy czym dla wygody można wszystkie klucze wzorcowe machnąć jako array_keys.

Jak sam widzisz, nie Kohana Ci sprawia problem, ale logika skryptu.
Go to the top of the page
+Quote Post

Posty w temacie
- grzes999   [Kohana]problem z zapytaniem   27.03.2012, 19:41:28
- - thek   A składnię join() i from() w Kohanie tyś widział? ...   27.03.2012, 21:37:26
- - grzes999   Widziałem i ten przykład pisałem na szybko i pomin...   27.03.2012, 22:05:26
- - r4xz   1. popraw temat 2. wklej w takim razie twoje zapyt...   27.03.2012, 22:10:39
- - thek   Grześ... W takim razie z czym masz problem? Z ubra...   27.03.2012, 22:39:06
- - grzes999   Wersja Kohany 3.2 i zapytanie działa tylko z tej d...   27.03.2012, 22:45:17
- - thek   Takie coś powinno wygenerować zapytanie: SELECT tu...   27.03.2012, 23:33:14
- - skowron-line   @grzes999 najpierw napisz sobie zapytanie z palca,...   28.03.2012, 07:05:29
- - thek   Nie echo Query builder zwraca obiekt, więc nic to...   28.03.2012, 07:30:02
|- - skowron-line   Cytat(thek @ 28.03.2012, 07:30:02 ) N...   28.03.2012, 07:34:49
- - grzes999   No i sprawdziłem i zapytanie jest takie jak chce i...   28.03.2012, 10:00:24
- - skowron-line   A przypadkiem break w switch Ci nie kończy pętli f...   28.03.2012, 11:17:39
|- - grzes999   Cytat(skowron-line @ 28.03.2012, 12...   28.03.2012, 12:09:26
- - phpion   @up: No co Ty   28.03.2012, 11:19:31
- - skowron-line   Napisz co chcesz wyciągnąć z bazy, będzie prościej...   28.03.2012, 12:13:39
- - grzes999   W bazie mam w jednej tabeli mam hotele a w drugiej...   28.03.2012, 13:15:58
- - thek   To w takim razie pchaj to jako tablicę, czyli wher...   28.03.2012, 14:14:22
- - grzes999   thek dzięki za wyjaśnienie ale samo się trochę ter...   28.03.2012, 15:24:34
- - thek   Metody modelu pisze się tak, by był przydatne Co ...   29.03.2012, 01:00:42
- - grzes999   Próbuję pisać zapytanie tak jak mi poradziłeś thek...   29.03.2012, 13:19:30
- - skowron-line   Zobacz jakie zapytanie Ci wypluwa na ekran [SQL] p...   29.03.2012, 13:38:00
- - thek   Bo $tablica powinna zawierać pobrane z formul...   29.03.2012, 14:32:35
- - grzes999   Tylko problem jest taki że ja nie mam formularza i...   29.03.2012, 17:21:46
- - thek   Jeśli to tylko pobór z bazy, to where niepotrzebne...   29.03.2012, 22:31:05
- - grzes999   Dzięki wielkie wszystko działa I jeszcze mam m...   30.03.2012, 08:49:38
- - thek   Jak dla mnie to źle podszedłeś do tego... Skoro fu...   30.03.2012, 10:50:24
- - grzes999   Ok tylko że w zapytaniu oprócz id_wyposazenia pobi...   30.03.2012, 12:34:49
- - thek   Jeśli używasz Kohany z gałęzi 2.x to owszem, możes...   30.03.2012, 12:45:58
- - grzes999   Ja osobiście używam 3.2 tak że będę musiał coś w m...   30.03.2012, 12:50:49
- - thek   A o parametrach funkcji słyszałeś? $model-...   30.03.2012, 21:13:26
- - grzes999   No oczywiście że nie tylko co ma być w kontrolerz...   30.03.2012, 21:48:47
- - thek   Napiszę tak... Przeczytaj jakiś poradnik o tym jak...   30.03.2012, 22:50:37
- - grzes999   Rozumiem mniej więcej zasadę działanie MVC. Mogę p...   30.03.2012, 23:12:17
- - thek   Bo tak właśnie wygląda jedno z możliwych poprawnyc...   31.03.2012, 14:19:48
- - grzes999   Dzięki wszystkim za bardzo dobrą i szybką pomoc. T...   31.03.2012, 16:50:38


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: 6.10.2025 - 09:37