Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Sortowanie po dacie MySQL + date PHP
d.stp
post 23.01.2015, 13:42:36
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


Od początku na swojej stronie mam tabelę z rekordami gdzie jest pole "data_dodania" i nie wiem czemu (może temu że to było dawno temu) zrobiłem to pole jako VARCHAR a datę wrzucałem przez date() w php. Problem pojawił się teraz jak chcę zrobić sortowanie wyników z tej tabeli wg. daty dodania. Nie wiem co będzie lepsze czy kombinować z tym i dalej trzymać się varchar czy jakimś magicznym sposobem przekonwertować tabele na DATETIME.

W tym polu data wrzucana przez date() w php wygląda tak: 10-10-2014, 19:14:56 i nie wiem jak zrobić sortowanie sad.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Kishin
post 23.01.2015, 14:01:38
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

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


Rozumiem ze nie masz w tej tabeli żadnego pola id z auto incrementem? Bo jeżeli tak to równie dobrze możesz sortować po tym polu.

Jeżeli nie no to cóż, wg mnie dobrze mieć tabele w jakimś normalnym formacie żeby na przyszłość nie kombinować już.
Więc wyciągnij sobie po prostu wszystkie wartości data_dodania w php i pozamieniaj je na format date_time : $mysqldate = date( 'Y-m-d H:i:s', $phpdate );

Gdy już będziesz miał poprawioną tabele, zamien typ danych na datetime i tyle
Go to the top of the page
+Quote Post
d.stp
post 23.01.2015, 14:05:35
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


Mam pole z AI, ale tutaj chodzi o to żeby właśnie sortować po dacie dodania, nie po innym polu sad.gif

Nie ma jakiejś super funkcji co mi przekonwertuje date? sad.gif
Go to the top of the page
+Quote Post
Crozin
post 23.01.2015, 14:55:59
Post #4





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

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


1. Wykonaj kopię bazy danych.
2. Dodaj nową kolumnę typu DATE do tabeli.
3. Wykonaj zapytanie UPDATE, które przekopiuje wartość z kolumny VARCHAR do kolumny DATE, jednak pamiętaj o tym, by ten przecinek w formacie usunąć - funkcja REPLACE.
4. Sprawdź czy dane zostały poprawnie przeniesione.
5. Usuń pierwotną kolumnę VARCHAR.
6. Zmień nazwę kolumny DATE na taką jak miała pierwotna.

Dodatkowo:
1. Nie pamiętam już czy w MySQL nie dałoby się tego zrobić przez ALTER TABLE + funkcję konwertującą, ale to bez znaczenia - jest to jednorazowa operacja.
2. Zapewne dane z bazy wyświetlasz na stronie "jak lecą". Teraz będziesz musiał je odpowiednio sformatować do postaci YYYY-MM-DD, HH:MM:SS.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:50