За последние 24 часа нас посетили 21545 программистов и 1681 робот. Сейчас ищут 1872 программиста ...

Изменение порядка строк

Тема в разделе "MySQL", создана пользователем Иван_Тан, 10 сен 2024.

  1. Иван_Тан

    Иван_Тан Новичок

    С нами с:
    8 сен 2024
    Сообщения:
    2
    Симпатии:
    0
    Приветствую.

    Дано: 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;

    Как это сделать? Вот в чём вопрос…
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.848
    Симпатии:
    745
    Адрес:
    Татарстан
    1) 146% - неверно организовано хранение данных (структура) ... может изначальную задачу скажите и вам подскажут как что хранить?
    2) столбцы не сортируют ... в принципе
    3) Вывести где? в MySQL .... в PHP?
    очень непонятная задача.... зачем сохранять в новую БД? Вывод по 10-15 строк - где? В PHP ? постраничный вывод (он же пагинация) нужен или что?
    ну и где ваши наработки?
    Если типа - сделайте все за меня - так есть спец раздел для этого....
     
  3. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    389
    Симпатии:
    75
    Адрес:
    Бавария, Германия
    Добрый день!

    По сути, согласен с ADSoft.
    В какой ветке должна быть это меня не волнует.
    Единственно, что понятно - это про сортировку на PHP ассоацивного массива.
    https://www.php.net/manual/ru/function.asort.php
    PHP:
    1. <?
    2. //Получаем строку таблицы из MySQL в массив $arr
    3. $arr = ["char1"=>58, "char2"=>3, "char3"=>20, "char4"=>9];
    4. echo "<pre>";
    5. echo "Было - char1=58, char2=3, char3=20, char4=9;<br>";
    6. print_r($arr);
    7. //Сортировка ассоативного массивав в порядке возрастания, сохраняя ассоциацию индексов
    8. asort($arr);
    9. echo "Надо - char2=3, char4=9, char3=20, char1=58;<br>";
    10. print_r($arr);
    11. /*
    12. Было - char1=58, char2=3, char3=20, char4=9;
    13. Array
    14. (
    15.     [char1] => 58
    16.     [char2] => 3
    17.     [char3] => 20
    18.     [char4] => 9
    19. )
    20. Надо - char2=3, char4=9, char3=20, char1=58;
    21. Array
    22. (
    23.     [char2] => 3
    24.     [char4] => 9
    25.     [char3] => 20
    26.     [char1] => 58
    27. )
    28. */
    Удачи!
     
  4. Иван_Тан

    Иван_Тан Новичок

    С нами с:
    8 сен 2024
    Сообщения:
    2
    Симпатии:
    0
    Добрый день!
    Спасибо за ответы - буду читать и думать, однако! :)