Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MYSQL Sortowanie wg Dat
Forum PHP.pl > Forum > Bazy danych > MySQL
Reptile ReX
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
Dlaczego nie przechowujesz daty jako... datę? Użyj kolumny typu DATETIME.
Reptile ReX
I następnie co powinienem zrobić ?
wookieb
Możesz ją obrobić w PHP na odpowiedni format (i tą wersję polecam)
Reptile ReX
No, jednak myślę że tak będzie najlepiej.
vermis
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
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
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.

  1. SELECT * FROM `table` ORDER BY `date` ASC
wookieb
Cytat(Reptile ReX @ 19.01.2011, 10:07:34 ) *
I chcę wpierw wyświetlić tylko takie linki:

2011-02
2011-03
2011-04


  1. SELECT * FROM tabela GROUP BY CONCAT(year(twoja_data),'-',month(twoja_data)) ORDER BY twoja_data ASC
Reptile ReX
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
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
No tak o to mi chodziło, tylko pytając o optymalność chodziło mi o czas w jakim skrypt wykona polecenie smile.gif.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.