Вывод значений мультиселекта в том же порядке, в каком выбрано

Добрый день! Имеется мультиселект, выбирающий из имеющихся ресурсов, вот его параметры:
@SELECT `pagetitle`, `id` FROM `[[+PREFIX]]site_content` WHERE `parent` = 3 ORDER BY `pagetitle` ASC
Соответственно и вывод перечня у него получается BY `pagetitle` ASC, а требуется что бы выводил в том же порядке, в каком выбрано. Если не указывать ORDER BY, то он вообще по порядку выводит.
Помогите пожалуйста, заранее спасибо
Серый
13 октября 2019, 11:22
modx.pro
552
0

Комментарии: 10

Александр Мельник
13 октября 2019, 15:46
0
а требуется что бы выводил в том же порядке, в каком выбрано.
Что это значит?
Насколько можно понять вы формируете значение некоторого ТВ на основании биндинга SELECT
Это прямой запрос в базу, в котором вы передаете как отсортировать результаты. Вот вам так и отображает.
Откуда тут может взяться " в том же порядке, в каком выбрано."
    Серый
    13 октября 2019, 16:02
    0
    Я просто предполагаю, что наверное в БД результаты мультивыбора вносятся всё же в неком порядке. Например у меня там в выпадалке оно в таком порядке: 1, 2, 3, 4, 5. А я выбрал 5, 3, 4, и оно в БД записалось с сохранением выбранного порядка. Ну вдруг! Если нет, так нет, значит надо искать другой способ(
    Там у меня этот мультиселект из ресурсов выбирает, будет обидно, если нельзя никак порядок выбранного сохранить
    Александр Мельник
    13 октября 2019, 16:13
    0
    А я выбрал 5, 3, 4, и оно в БД записалось с сохранением выбранного порядка.
    Но вы же понимаете, что в базу данных эти данные теперь записываются совсем в другую таблицу. Ваш выбор хранится как значение этого ТВ для этого ресурса и никакого отношения к запросу
    @SELECT `pagetitle`, `id` FROM `[[+PREFIX]]site_content` WHERE `parent` = 3 ORDER BY `pagetitle` ASC
    уже не имеют.
    Не буду говорить что я точно уверен, что селект с множественным выбором сохранит данные именно в том порядке как вы кликнули, но мне кажется есть еще тип ТВ который звучит как метка (или тег) и он по сути тоже является мультивыбором и вот там очередность выбора (помоему) работает.
      Серый
      13 октября 2019, 16:32
      0
      Коллега, спасибо за наводку, это действительно работает! Конечно выглядит не так гламурно, как мультиселект (в строчку вписываются id выбранных ресурсов), но функциональность здесь важнее) Может эту строку выбора можно как-то скрывать?))))
      Баха Волков
      16 октября 2019, 11:54
      0
      В БД будет храниться в порядке выбора и потому причина в другом, дайте угадаю, вы потом выводите ресурсы с помощью pdoResources подставляя значение TV в параметр resources?
        Серый
        16 октября 2019, 11:56
        0
        Ага!!)))))
          Баха Волков
          16 октября 2019, 12:11
          0
          pdoResources по умолчанию сортирует по pagetitle вне зависимости от порядка передаваемых id в параметр resources, для получения нужного порядка нужно указать:

          'sortby' => 'FIELD(modResource.id, 1,2,3)'
            Серый
            16 октября 2019, 12:14
            0
            То есть в моем случае
            'sortby' => 'FIELD(modResource.id, [[tv.artists]])'
            верно?
            Серый
            17 октября 2019, 10:56
            0
            Попытался вставить это и так и не понял, а куда это вставлять? Наугад потыкался, так и остался с тегом(
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        10