Member 13435586 Ответов: 2

Как показать месяц в порядке возрастания в PHP/mysql ?


я хочу распечатать список пользователей, добавленных по дате в порядке возрастания, но есть проблема порядка месяцев, я использую формат даты dd-mm-yy

Что я уже пробовал:

$query="SELECT * FROM `transactions` WHERE `dealer_id` = '$dealer_id' ORDER BY `_date` ASC";

Richard Deeming

Просто: не храните даты в виде строк. Используйте DATE наберите вместо этого.

MySQL :: MySQL 5.7 справочное руководство :: 11.3 типы даты и времени[^]

Member 13435586

но мне нужен такой формат даты, как этот => dd-mm-yyyy, но в MySQL формат даты-mm/dd/yyyy

Richard Deeming

Форматирование даты-это то, что вы делаете в коде презентации. Данные должны храниться с использованием соответствующего типа - в данном случае DATE тип.

Это сразу же решит вашу проблему, потому что даты будут отсортированы правильно. Затем вам просто нужно использовать PHP для форматирования возвращаемого значения.

Member 13435586

хорошо, спасибо..

Member 13435586

как я могу изменить формат даты в mysql??

Richard Deeming

Вы не. Вы НЕ храните даты в виде строк. Вы храните их как даты.

2 Ответов

Рейтинг:
2

Patrice T

$query="SELECT * FROM `transactions` WHERE `dealer_id` = '$dealer_id' ORDER BY `_date` ASC";

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]


Рейтинг:
0

Member 10502398

Выберите * из `tablenam`, где MONTH(updated_date) = MONTH(NOW())


Maciej Los

Мой голос 1. причина: ваш ответ касается утверждения where, но OP спрашивает о сортировке данных.