Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Relacja wiele do wielu - jak wyciągnąć dane?
Nix1
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 1
Dołączył: 23.09.2008
Skąd: Łódź

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


Witam

Mam bazę danych z różnymi imprezami (koncertami, wystawami...) i każda z nich może należeć do wielu kategorii.

w uproszczeniu:

tabela_imprezy
id_imprezy | nazwa_imprezy

tabela_kategorie
id_kategorii | nazwa_kategorii

tabela_x
id_imprezy | id_kategorii

Potrzebuję wyświetlić listę imprez tak, żeby przy każdej z nich były wypisane wszystkie kategorie do których dana impreza należy (taki efekt jak w Gmailu z etykietami przy tematach).

Czy da się to wyciągnąć w jednym zapytaniu?
Jeśli nie, to może jest jakiś lepszy sposób, niż wyciąganie listy kategorii dla każdej imprezy z osobna?

Nie żebym się jakoś bardzo przejmował wydajnością, ale wolałbym to zrobić poprawnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Z góry dzięki za pomoc i pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Nix1
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 1
Dołączył: 23.09.2008
Skąd: Łódź

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


Niby OK, ale oba sposoby mają dwie zasadnicze wady.

Przede wszystkim - jeśli chcę wybrać tylko imprezy należące do jakiejś kategorii wtedy pozostałych kategorii w ogóle nie zobaczę. Chodzi np. o to, żeby po kliknięciu w etykietę pokazały się tylko imprezy z przypisaną tą etykietą, ale pozostałe etykiety danej imprezy mają być widoczne.

Drugi problem jest taki, że dodałem drugie podobne powiązanie (nazwijmy je 'typy'). Wtedy oba te sposoby troszkę się sypią - generują powtórki. Może by się to dało skryptem wyeliminować, ale w skrajnych przypadkach tych powtórek może wyjść naprawdę sporo.

Także chyba szukam dalej...

Ten post edytował Nix1 27.09.2008, 02:00:13
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: 11.10.2025 - 03:18