Приветствую. Дано: PHP – 8.1, MySQL – 5,7, Задача: Есть (id) и 4 числовых столбца, (char1,char2,char3,char4) в таблице MySQL, в них числа перемешаны. Надо отсортировать по возрастанию числа, не в столбцах, а в строках (char1,char2,char3,char4). Пример: Было - char1=58, char2=3, char3=20, char4=9; Надо - char2=3, char4=9, char3=20, char1=58; Как я понимаю надо сначала вывести строки в массив, там проверить, как расположены цифры (в некоторых строках они могут быть в нужном порядке). Потом обработать каждую строку, вывести их на экран (по 10-15 строк, чтоб не листать страницы браузера каждый раз) и желательно, переписать нужную последовательность в новую базу MySQL. В этом случае должно получиться: char2=3 -> char1=3, char4=9-> char2=9, char3=20-> char3=20, char1=58-> char4=58; Как это сделать? Вот в чём вопрос…
1) 146% - неверно организовано хранение данных (структура) ... может изначальную задачу скажите и вам подскажут как что хранить? 2) столбцы не сортируют ... в принципе 3) Вывести где? в MySQL .... в PHP? очень непонятная задача.... зачем сохранять в новую БД? Вывод по 10-15 строк - где? В PHP ? постраничный вывод (он же пагинация) нужен или что? ну и где ваши наработки? Если типа - сделайте все за меня - так есть спец раздел для этого....
Добрый день! По сути, согласен с ADSoft. В какой ветке должна быть это меня не волнует. Единственно, что понятно - это про сортировку на PHP ассоацивного массива. https://www.php.net/manual/ru/function.asort.php PHP: <? //Получаем строку таблицы из MySQL в массив $arr $arr = ["char1"=>58, "char2"=>3, "char3"=>20, "char4"=>9]; echo "<pre>"; echo "Было - char1=58, char2=3, char3=20, char4=9;<br>"; print_r($arr); //Сортировка ассоативного массивав в порядке возрастания, сохраняя ассоциацию индексов asort($arr); echo "Надо - char2=3, char4=9, char3=20, char1=58;<br>"; print_r($arr); /* Было - char1=58, char2=3, char3=20, char4=9; Array ( [char1] => 58 [char2] => 3 [char3] => 20 [char4] => 9 ) Надо - char2=3, char4=9, char3=20, char1=58; Array ( [char2] => 3 [char4] => 9 [char3] => 20 [char1] => 58 ) */ Удачи!