Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sortowanie po dacie MySQL + date PHP
Forum PHP.pl > Forum > Przedszkole
d.stp
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
Kishin
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
d.stp
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
Crozin
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.
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.