![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Tworzę takiego 'mini-CMSa' i chciałbym utworzyć sobie takie archiwum. Trzeba by tam wszystkie wpisy ułożyć w pewnej kolejności. Schemat mniej więcej taki:
▼ 2012 (LICZBA WPISÓW) _▼Grudzień (LICZBA WPISÓW) __ TITLE PIERWSZEGO NEWSA __ TITLE DRUGIEGO NEWSA __ TITLE TRZECIEGO NEWSA _▼Listopad (LICZBA WPISÓW) __ TITLE PIERWSZEGO NEWSA __ TITLE DRUGIEGO NEWSA __ TITLE TRZECIEGO NEWSA Pytanie - jak to 'ugryźć', żeby to było najbardziej optymalnie, jak się tylko da, mając do dyspozycji tylko uniksową datę wszystkich wpisów/newsów/postów (jeden pies jak to nazwiemy) ? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wg. mnie to zależy od tego ile tych wpisów masz. Jeśli jest ich 20,30,50 to możesz sobie wyciągnąć wszystkie rekordy [title, timestamp] i w PHP w pętli wpakować każdy wpis do tablicy grupując je miesiącami.
Inaczej zrobiłbym gdy wpisów jest dużo więcej, np kilka tysięcy. Wtedy powinieneś zrobić zapytanie które ci policzy ilość wpisów każdego miesiąca za pomocą COUNT() i GROUP BY oraz funkcji date/time w mysql i pokazać same miesiące z ilością wpisów. Klikając w miesiące rozwijałaby się lista z tytułami z jakimś stronicowaniem itp. Ten post edytował krowal 20.12.2012, 19:06:31 -------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Optymalne rozwiązanie? Filtrowanie newsów według kategorii: 2012 -> Grudzień, Styczeń, Luty, itd, 2013 -> Grudzień, Styczeń, Luty, itd oparłbym na podstawie modułu kategorii, który i tak pewnie masz w systemie newsów. Tylko zmodyfikowałbym strukturę - dodałbym trzy nowe pola:
Kod news_count typu smallint - powinno starczyć ewentualnie typu mediumint is_special = typu enum (yes|no) bądź tinyint parent_tree = typu varchar = drzewko w postaci "IP" - było na forum news_count - wiadomo jak dodajesz nowego njusa dla tego kategorii to dodajesz +1, w przypadku usunięcia -1 - proste. is_special - w przypadku kategorii typu 2012, styczeń, luty, itd -> zaznaczyłbym "yes" -a w przypadku innych "no" - dlaczego? Ponieważ jak nadasz komuś uprawnienia do pisania njusów to niech zaznacza/odznacza tej kategorii tylko niech to robi z automatu. Plus dodatkowo jak pod newsem będziesz wyświetlał spis kategorii to łatwo sobie ustawisz zapytanie, aby nie pobierało kategorii typu styczeń, grudzień, itd... parent_tree - chodzi oto, aby móc tworzyć zagłębienia dla kategorii - tak jak to pokazałeś na pierwszym screenie (tj: 2013 -> Grudzień, 2013 -> Styczeń, itd) Jeśli budowałbyś już taki kod to NIE WYŚWIETLAJ wszystkich newsów dla 12 miesięcy bo po co? proponuje żeby wyświetlało dopiero po kliknięciu w nazwę miesiąca - chyba, że ktoś nie zaznaczył nazwy to niech DOMYŚLNIE wczytuje pierwszy miesiąc. Ten post edytował wujek2009 20.12.2012, 19:39:15 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:07 |