[PHP+SQL] Wyświetlanie danych kategorii


(Adi Aj) #1

Witam,

Mam taki niby mały problem jednak nie mogę znaleźć sensownego i najlepszego rozwiązania.

Mam tabele "pokoj", a w niej kolumnę "pokoj" i "wyposazenie". Są w niej dane takie jak:

pokoj 2A -> szafka

pokoj 2A -> stół 

pokoj 2A -> kuchenka

pokoj 2A -> lodowka

pokoj 2A -> umywalka

pokoj 24C -> szafka

pokoj 24C -> kuchenka

pokoj 24C -> umywalka

pokoj 56 -> ręcznik

pokoj 56 -> kuchenka

pokoj 56 -> zmywarka

pokoj 56 -> telewizor

pokoj 56 -> lampka

pokoj 56 -> wieszak

Chcę uzyskać coś takiego:

pokoj 2A - szafka, stół, kuchenka, umywalka

pokoj 24C - szafka, kuchenka, umywalka

pokoj 56 - ręcznik, kuchenka, zmywarka,telewizor

Założenie jest takie, że musi być to elastyczne. Gdy dodam nowy pokój z wyposażeniem żeby też to wypisał.

Musi być też jakaś stała żeby pobierał np. maksymalnie 4 elementy z pokoju - tak jak jest na powyższym przykładzie.

Czy macie jakiś pomysł jak rozwiązać to na pozór banalne zadanie?? :slight_smile:


(adpawl) #2
SELECT pokoj, GROUP_CONCAT(wyposazenie) AS wyposazenie FROM tabela GROUP BY pokoj;

http://dev.mysql.com/doc/refman/5.0/en/ ... oup-concat


(Adi Aj) #3

Hmm no tak tylko nie ma nigdzie, że ma pokazać np. 3 elementy wyposażenia nie więcej.

A czy funkcje LIMIT można do tego jakoś dołączyć? Albo coś podobnego?


(adpawl) #4

Nie, LIMIT nie będzie działał ...przynajmniej tak jak byś tego chciał.

Pozostaje ci kombinowac z podzapytaniami, albo zostawić jak jest i obcinać sobie dopiero przy pobieraniu np w php