Можно ли реализовать сортировку по убыванию/возрастанию с помощью одного php? Нашел в интернете только варианты с JS.
Смотря что сортировать собитаешся. PHP - это так же язык программирования как и js, если знаешь алгоритм - можно реализовать что угодно. Алгоритмов в интернете полно. Помню, сортировка была первой более мение нормальной задачкой по информатике в универе, при том что я не на инженера учусь. --- Добавлено --- Хотя в PHP по сути даже алгоритмы для этого не нужны. https://php.ru/manual/array.sorting.html
@merOsever, получи данные в массив и сортируй как душе угодно. Для этого уже есть готовые функции в php. Если их не хватит, можешь изобрести свою. --- Добавлено --- https://secure.php.net/manual/ru/ref.array.php
Спасибо большое всем @miketomlin можно поподробнее про параметры сортировки в адресах и в куках? очень любопытно
Ну, например, я делал простой File Viewer с сортировкой по имени файлов/каталогов и по размеру файлов в обоих направлениях, соответственно у каждого каталога могло быть 4 состояния, например: /files /files?p=1 /files?p=2 /files?p=3 К ссылкам на все каталоги, включая вышележащие, присоединял тек. строку параметров, чтобы наследовалась сортировка. Делал это на уровне шаблона, как и ссылки для сортировки: HTML: <tr> <th><a href="<?= $p,$pn?'':'?p=1' ?>">Name</a></th> <th class="num"><a href="<?= $p,'?p=',$pn==2?3:2 ?>">Size</a></th> </tr>
Объемы списков разные бывают. Для сортировки многостраничных списков все равно сервер приходится обычно привлекать.
Ну если многостраничник то это с бд тянется и пхп тут тоже не особо нужен. А на счет объёмов, то jsом быстрее получается, ведь проблема не в объёме а в том что браузер разом все отрисовывает. Js на скролл повесить и всё
Само собой можно ))) Странно, что ты спрашиваешь вообще. Можно и на PHP и на SQL, к которому обращается PHP. В общем случае, если не весь список получен за один запрос, то сортировать надо на сервере. Хоть у тебя одностраничник, хоть многостраничник. Представьте, например, "бесконечный" список прокрутки (infinite scroll), данные для него получаются с сервера порциями. Страница не меняется, но чтобы выдать следующую порцию правильно, надо соблюдать сортировку уже на сервере. Полюбому! Если всё получается отдать за один запрос, то пофигу где сортировать.
Я учусь и пробую решать именно практические задачи которые будут встречаться на самой работе. Например есть список товаров который надо отсортировать по убыванию цены учитывая то что он может постоянно добавляться. Как лучше сделать? Вот тут предложили засунуть все в один массив и сортировать с помощью встроенных в php функций например sort(). И потом уже отсортированный товар положить в БД. PHP: $array = array( "Имя_товара1"=>"Цена_товара5", "Имя_товара2"=>"Цена_товара2", "Имя_товара3"=>"Цена_товара4", ); sort($array); Будет ли нормально обрабатываться массив с таким огромным количеством данных?Ведь товара может быть очень много. Как вообще лучше сделать ?
Ты хочешь сортировать товар для того, чтоб его запихнуть в базу данных или вывести пользователю на экран ? Если засунуть в базу, скорее всего ты его будешь обновлять или добавлять, но зачем сортировать ? суй как есть, а при запросе сортируй
Вообще мне надо вывести пользователю. Но я подумал что стоит отсортировать все до того как заснуть в БД,потом засунуть в БД отсортированный товар,а оттуда можно уже доставать и выводить пользователю. Пожалуй ты прав и это слишком много лишних действий )
@merOsever, почитай что-нибудь про mysql. Сортировать всегда надо стараться в запросе, потому что тогда ты можешь использовать опять же встроенные в DB средства для пагинации, к примеру. У есть один проект, где ну как ни крути, в запросе не отсортируешь - слишком сложный алгоритм поиска, вот там приходится потом всякую костыльню на php расставлять, а так я всегда стараюсь отдать эту задачу базе, а не сортировать полученный результат из php
поддерживаю, всегда сортирую sqlем,а потом работаю с результатом и всё шикарно, и потом сколько возможностей даёт sql для сортировки =)
Я минимально знаком с MySQL) Могу банально создать/изменить/удалить/вставить с помощью sql запросов. Попробую разобраться с запросом сортировки То есть логика построения кода будет такова: Принимаю товар,сортирую с помощью sql и ложу в БД,оттуда уже достаю отсортированный список и вывожу пользователю. Может подскажите по поводу архитектуры репозиториев?) Я так понимаю sql код надо держать в отдельном файле,и потом его подключить,чтобы не мешать все до кучи. Уместна ли будет такая реализация ?
@merOsever, не совсем такова... Принимаете товар и кладёте в БД. Без всякой сортировки... Из БД при выполнении запроса select... order by... получаете отсортированные данные...
ещё цена номенклатуры должна быть на отметку времени и берёте актуальную цену, чтоб потом верно запросить цену для вывода пользователю
Спасибо всем большое за то что разжевали ) Порой очень надо чтоб ответили может быть на глупые,но как мне кажется важные вопросы ) --- Добавлено --- Как закончу покажу что получилось на ваше оценку )