![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
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 ] I teraz co chcę osiągnąć w wyniku zapytania: Kod A -> wpis1, wpis2, wpis3, wpis5 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 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ć? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
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ć? Przecież i tak musisz pobrać wszystkie wiersze, więc to zrób jednak nie wczytuj do tablicy!!! a od razu wyświetlaj dane w widoku... SELECT * FROM tabela ORDER BY kategoria potem dane otrzymane wyciągaj wiersz po wierszu a nie do tablicy i dalej sprawdzasz czy jest ta sama kategoria co w zmiennej, jeśli tak to dodajesz przecinek i następny wpis, jeśli inna kategoria to korzystasz z funkcji do wyświetlania kategorii i dodajesz świeży wpis... oczywiście piszę o funkcjach widoku - nie buforuj danych nie potrzebnie ;] Ten post edytował zegarek84 8.03.2012, 23:12:58 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 00:33 |