Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Mysql вывод даных (https://javascript.ru/forum/server/76947-mysql-vyvod-danykh.html)

Vasya1976 04.03.2019 01:16

Mysql вывод даных
 
Есть бд mysql. Из админки сайта добавляется новый товар в таблицу. Товару присваивается автоматически id. При выводе товара на сайт, он становится первый на странице, хотя id у него скажем 126. Когда добавляю ещё один товар(127), то 127 становится первым. Как отсортировать отображение товаров на странице? Ведь нереально менять вручную id когда скажем 300 товаров, и надо все их менять местами.

laimas 04.03.2019 03:00

Цитата:

Сообщение от Vasya1976
При выводе товара на сайт, он становится первый на странице, хотя id у него скажем 126. Когда добавляю ещё один товар(127), то 127 становится первым.

Считайте смело, что записи в базе хранятся в навал, и то что последние добавленные выводятся первыми, это явление временное, ибо по мере модификации таблицы, а она неизбежно будет, все изменится. Или же все у вас закономерно и это определяется сортировкой в запросе посредством ORDER BY field_name DESC.

Можно было и не задаваться таким вопросом ибо база и существует для того чтобы иметь гибкий и выбор ее данных, и различную их сортировку, все это у нее имеется, конечно же.

Vasya1976 04.03.2019 09:28

Прочитал инструкцию, но поскольку не силен в программировании то полял только каждое 10 слово. Если я правильно понял, то поскольку вывод товаров производится хаотично, единственным правильным решением будет обращение к таблице с перечислением всех id в том порядке в котором мне нужно?

laimas 04.03.2019 10:33

Цитата:

Сообщение от Vasya1976
единственным правильным решением будет обращение к таблице с перечислением всех id в том порядке в котором мне нужно?

Зачем же, хотя иногда возникает и такая необходимость.

Что там непонятного? Там описан синтаксис запроса выборки из таблицы базы данных. Я же вам не стану все из него объяснять, это слишком много времени требует, так что искать ответы будете сами.

Но там о сортировке черным по белому написано и даны примеры. Пусть нужно выбрать все поля (столбцы) таблицы с именем products отсортировав их в порядке от большего ID продукта к меньшему. Сортировка задается в конце условия выборки (если оно есть), до лимита, если оно определено, ну и при прочих условиях, кои там тоже описаны. Если поле идентификатора называется id, то запрос будет таким:

"SELECT * FROM `products` ORDER BY `id` DESC"

Если же порядок сортировки нужен не убывающий (DESC), то просто убрать иго из запроса - порядок сортировки "возрастающий" (ASC) является значением по умолчанию и его можно не указывать. Написано же там об этом? Написано.

Можно только заметить, что если при добавлении продукта в базу пишется и его дата добавления, то сортировку можно выбрать и по полю даты, ибо она всегда будет больше у вновь добавляемых продуктов.


Часовой пояс GMT +3, время: 06:25.