We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 27954
    • 23 Posts
    Столкнулась с такой проблемой, нужно вывести список товаров, отсортированный по цене. Цену определила в поле Description, сортирую

    [[Wayfinder? &startId=`66` &level=`2` &rowTpl=`row`&sortBy=`description`]]

    Все нормально работает, но стандартная проблема порядка, цены выходят так

    10000

    59000

    5980



    Как можно обойти такую сортировку? С нулем впереди естественно срабатывает, но это не выход smiley
      • 31268
      • 111 Posts
      Quote from: solli at May 18, 2009, 05:58 AM

      Столкнулась с такой проблемой, нужно вывести список товаров, отсортированный по цене. Цену определила в поле Description, сортирую
      [[Wayfinder? &startId=`66` &level=`2` &rowTpl=`row`&sortBy=`description`]]

      Первое что в голову приходит (не уверен, что сработает, но попробовать стоит):
      [[Wayfinder? &startId=`66` &level=`2` &rowTpl=`row`&sortBy=`CAST(description AS UNSIGNED)`]]
      Типа - сортировка через приведенный к числовому тип...
        Discere ne cesses
        • 27954
        • 23 Posts
        Не сработало, выдало вот такую ошибку
        « MODx Parse Error »
        MODx encountered the following error while attempting to parse the requested resource:
        « Execution of a query to the database failed - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS UNSIGNED) ASC' at line 1 »
              SQL: SELECT DISTINCT sc.id, sc.menutitle, sc.pagetitle, sc.introtext, sc.menuindex, sc.published, sc.hidemenu, sc.parent, sc.isfolder, sc.description, sc.alias, sc.longtitle, sc.type,if(sc.type='reference',sc.content,'') as content, sc.template, sc.link_attributes FROM `xx`.`modx_site_content` sc LEFT JOIN `xx`.`modx_document_groups` dg ON dg.document = sc.id WHERE sc.published=1 AND sc.deleted=0 AND (sc.privateweb=0) AND sc.hidemenu=0 AND (sc.id NOT IN (78,79,80,81)) AND sc.id IN (93,116,115,114,113,110,109,107,118,120,126,91,122,92,124,78,79,108,111,112,119,125,123,117,121,106,105,100,99,98,97,96,95,94,80,102,101,103,104,81,162,163,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212) GROUP BY sc.id ORDER BY sc.CAST(description AS UNSIGNED) ASC ;


        Нашла более удобный выход, перед 4хзначными ценами ставлю пробел- пользователи не видят, а сортировка пашет smiley
          • 31268
          • 111 Posts
          Quote from: solli at May 18, 2009, 11:32 PM

          Нашла более удобный выход, перед 4хзначными ценами ставлю пробел- пользователи не видят, а сортировка пашет smiley

          Ну это как то не совсем концептуально правильно.
          Во-первых: для цены надо было завести новый TV с числовым типом
          Во-вторых: для вывода использовать DITTO

          Хотя... Первая заповедь программиста - "Работает - не трожь!" grin
            Discere ne cesses
            • 897
            • 1,620 Posts
            ага, а нулеая "RTFM!!"
              "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

              Не используйте Revo для "просто сайтов". Используйте Evo

              Who can defeat the Russian bear?