Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MYSQL Sortowanie wg Dat
Reptile ReX
post
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.01.2008

Ostrzeżenie: (0%)
-----


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ć ?
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dlaczego nie przechowujesz daty jako... datę? Użyj kolumny typu DATETIME.
Go to the top of the page
+Quote Post
Reptile ReX
post
Post #3





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.01.2008

Ostrzeżenie: (0%)
-----


I następnie co powinienem zrobić ?
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Możesz ją obrobić w PHP na odpowiedni format (i tą wersję polecam)


--------------------
Go to the top of the page
+Quote Post
Reptile ReX
post
Post #5





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.01.2008

Ostrzeżenie: (0%)
-----


No, jednak myślę że tak będzie najlepiej.
Go to the top of the page
+Quote Post
vermis
post
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Reptile ReX
post
Post #7





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.01.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
webdice
post
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




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
Go to the top of the page
+Quote Post
wookieb
post
Post #9





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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


--------------------
Go to the top of the page
+Quote Post
Reptile ReX
post
Post #10





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.01.2008

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
Crozin
post
Post #11





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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().
Go to the top of the page
+Quote Post
Reptile ReX
post
Post #12





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.01.2008

Ostrzeżenie: (0%)
-----


No tak o to mi chodziło, tylko pytając o optymalność chodziło mi o czas w jakim skrypt wykona polecenie smile.gif.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 15:18