Jest 3:42... Co ja chcę napisać... Zacznę od tego jak wyglądają wpisy w bazie
Kod
[ id | kategoria | treść ]
Wpisów jest już sporo więc mam ograniczone możliwości zamodelowania tego w jakiś inny sposób. Nie bardzo wiem natomiast w jaki sposób stworzyć optymalne zapytania do bazy danych. A co chcę osiągnąć? Kategoria, to jedna litera. Najpiękniej by było, gdyby zapytanie zwróciło całą kolumnę i skrypt sprawdzał jakie literki występują i tworzył na tej podstawie grupy w widoku. I teraz dla każdej grupy kategorii przyporządkował odpowiednie jej treści, czyli baza może wyglądać tak:
Kod
[1 | A | wpis1 ]
[2 | A | wpis2 ]
[3 | A | wpis3 ]
[4 | B | wpis4 ]
[5 | A | wpis5 ]
[6 | D | wpis6 ]
[7 | G | wpis7 ]
[8 | G | wpis8 ]
[2 | A | wpis2 ]
[3 | A | wpis3 ]
[4 | B | wpis4 ]
[5 | A | wpis5 ]
[6 | D | wpis6 ]
[7 | G | wpis7 ]
[8 | G | wpis8 ]
I teraz co chcę osiągnąć w wyniku zapytania:
Kod
A -> wpis1, wpis2, wpis3, wpis5
B -> wpis4
D -> wpis6
G -> wpis7, wpis8
B -> wpis4
D -> wpis6
G -> wpis7, wpis8
inne litery się nie wyświetlają, natomiast gdy zostanie dodany wpis
Kod
[9 | U | wpis9 ]
to wynik już powinien wyglądać tak:
Kod
A -> wpis1, wpis2, wpis3, wpis5
B -> wpis4
D -> wpis6
G -> wpis7, wpis8
U -> wpis9
B -> wpis4
D -> wpis6
G -> wpis7, wpis8
U -> wpis9
Ktoś mi powie jak to mądrze ugryźć? Niby coś tam sobie napisałem, ale to wygląda tak okropnie, że nie mogę na ten kod patrzeć...
Robie tak, że pobieram z bazy wszystko co mam, lecę while'em po wyniku, sprawdzam warunek na inarray dla kategorii, jak jest, to dopisuje 'wpis', jak nie ma, to tworze w tablicy kategorie i dodaje wpis. No, potem jakieś wyświetlanie... Da się to jakoś bardziej SQL'owo zrobić?