Reptile ReX
19.01.2011, 00:56:15
Witam mam w planie zrobić pewne archiwum
Chcę, aby wpierw pokazywały mi się wyniki (linki):
Miesiąc1-Rok1
Miesiąc2-Rok1
...
Miesiąc12-Rok1
Miesiąc1-Rok2
Data w bazie jest zapisana w takim formacie:
07-01-11 - 09:53:54
Wiem że można potraktować ją explodem, ale co dalej
Czy można coś z tym zrobić ?
Crozin
19.01.2011, 01:36:27
Dlaczego nie przechowujesz daty jako... datę? Użyj kolumny typu DATETIME.
Reptile ReX
19.01.2011, 01:47:31
I następnie co powinienem zrobić ?
wookieb
19.01.2011, 06:38:08
Możesz ją obrobić w PHP na odpowiedni format (i tą wersję polecam)
Reptile ReX
19.01.2011, 09:32:59
No, jednak myślę że tak będzie najlepiej.
vermis
19.01.2011, 09:47:53
Cytat(wookieb @ 19.01.2011, 06:38:08 )

Możesz ją obrobić w PHP na odpowiedni format (i tą wersję polecam)
Chyba miesiąc i rok lepiej wyciągnąć już na poziomie SQL'a i sortować od razu odpowiednio wyniki.
http://dev.mysql.com/doc/refman/5.5/en/dat...-functions.html
Reptile ReX
19.01.2011, 10:07:34
Ok, tylko jak to później posortować? załóżmy że wyników mam sporo.
2011-02-15
2011-02-16
2011-02-17
2011-03-15
2011-03-16
2011-03-17
2011-04-15
2011-04-16
2011-04-17
I chcę wpierw wyświetlić tylko takie linki:
2011-02
2011-03
2011-04
A po kliknięciu w dany link, aby pokazywało mi wyniki dla tego dnia.
Np klikam w 2011-02 i otrzymuję:
2011-02-15
2011-02-16
2011-02-17
webdice
19.01.2011, 10:41:30
Jeśli jesteś na etapie pisania aplikacji, zmień kolumnę z datą na
TIMESTAMP lub
DATETIME. Jeśli masz już gotową bazę to napisz prosty skrypt który te dane poprawi.
Samo sortowanie jeśli kolumna jest w/w typu jest banalnie proste.
SELECT * FROM `table` ORDER BY `date` ASC
wookieb
19.01.2011, 10:43:31
Cytat(Reptile ReX @ 19.01.2011, 10:07:34 )

I chcę wpierw wyświetlić tylko takie linki:
2011-02
2011-03
2011-04
SELECT * FROM tabela GROUP BY CONCAT(year(twoja_data),'-',month(twoja_data)) ORDER BY twoja_data ASC
Reptile ReX
19.01.2011, 12:12:06
Ok, mam już bazę więc będę musiał sobie to pozamieniać, czy dobrze myślę:
Pobrać datę z bazy rozbić ją explodem i ułyżyć format YYYY-MM-DD, następnie UPDATE?
Czy może jest coś bardziej optymalnego ?
Crozin
19.01.2011, 12:19:07
Cytat
Czy może jest coś bardziej optymalnego ?
To masz napisać, raz odpalić i wyrzucić w cholerę... nie patrz tutaj na optymalność tylko zrób to w możliwie najkrótszym czasie - tak, możesz użyć explode().
Reptile ReX
19.01.2011, 12:47:02
No tak o to mi chodziło, tylko pytając o optymalność chodziło mi o czas w jakim skrypt wykona polecenie

.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.