За последние 24 часа нас посетили 17735 программистов и 1622 робота. Сейчас ищут 1874 программиста ...

Сортировка по числу

Тема в разделе "MySQL", создана пользователем Astoret, 23 апр 2008.

  1. Astoret

    Astoret Активный пользователь

    С нами с:
    28 фев 2008
    Сообщения:
    9
    Симпатии:
    0
    вобщем такая проблемка:
    нужно правильный SQL запрос, чтобы был вывод с правильной сортировкой по цыфрам.
    если используем
    PHP:
    1. <?php
    2. if (!$questions = get_records_select('question', "category IN ($categorylist) AND parent = '0' $showhidden", $sortorder, '*', 0, $perpage)) {
    3. ?>
    где к примеру
    PHP:
    1. $sortorder = "name ASC";
    при сортировке такой БД
    id name
    24 qu1
    25 qu2
    .. ...
    34 qu9
    35 qu10
    36 qu11
    37 qu12
    38 qu13
    .. ...

    выдаст:
    24 qu1
    36 qu11
    37 qu12
    38 qu13

    25 qu2
    43 qu21
    .. ...
    34 qu9
    80 qu
    35 qu10

    Кое значение надо присвоить $sortorder чтобы шло по порядку?
    qu1
    qu2
    ...
    qu8
    qu9
    qu10
    qu11
    ...
    qu18
    qu19
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Сортировать можно по строке или по числу. Строка с числами воспринимается как строка, а в строке значение 12 меньше, чем 3.
     
  3. creage

    creage Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    что за префикс такой хитрый - "qu"? нельзя от него избавиться?

    сами насоздаем себе проблем, а потом решаем, решаем, решаем...
     
  4. Astoret

    Astoret Активный пользователь

    С нами с:
    28 фев 2008
    Сообщения:
    9
    Симпатии:
    0
    проблем я не создаю, проблемы создают пользоватили, которые делают Тесты с такими названиями как qu1 и т.д.
    а мне нужжно изменить движок так чтобы была правильная сортировка :(
     
  5. Astoret

    Astoret Активный пользователь

    С нами с:
    28 фев 2008
    Сообщения:
    9
    Симпатии:
    0
    ну это я понял, поэтому собственно и задал этот вопрос. Я так понимаю что такой запрос зделать неудасться, нужно обраватывать уже после в пхп, а это серезное вмешательство в ядро, которое я холбы избежать...
     
  6. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Чего? Какое ещё ядро? Если нужна нестандартная сортировка, то тут прямая дорога к программной сортировке.
     
  7. creage

    creage Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    а думать мы умеем? разделите поле name на 2 поля - в одном храните ваш перфикс, в другом его номер п/п.
     
  8. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    не, у него индексы создают тоже пользователи.
    А он их хочет сортировать как им угодно.
    Завтра они придумают другую систему обозначений и он будет писать еще одну сортировку.
     
  9. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    armadillo +1

    писал парсер прайс - листа ...
    и пример:
    Код (Text):
    1.  
    2. 1    x1yz1         (все просто  :-) )
    3. 2    ...          (повторить - x1yz1 )
    4. 3    ....z2       (это уже - x1yz2 )
    5. 4    ....z4       (а это       x1yz4 )
    6. 5    ...2..1      (а это       x2yz1 )
    и это неполный перечень извращений над наименованием продукта, для человека достаточно легко понимается что и как ...
    но вот в программу - сначало дописывал правила .. потом задрался - сделал систему динамических правили
    (тоесть когда программа не знает что и как - она спрашивает и запоминает что на что и когда менялось) - и всеравно бало придумана комбинация которая не вписалась и в эти рамки

    Смысл поста: программа всегда будет отставать от человеческого воображения .. и всегда придется её доучивать
    Поэтому были придуманы стандарты (ограничивающие полет фантазии), делающий разговор более содержательным между машиной и человеком!


    П.С. вариант введи в таблицу поле "ранг" ... которое будет управлять сортировкой и сможет содержать только числовые значения!
     
  10. Astoret

    Astoret Активный пользователь

    С нами с:
    28 фев 2008
    Сообщения:
    9
    Симпатии:
    0
    Движок Moodle(поддержка дистанционного обучения), Ядро - это все скрипты кроме компонентов и блоков(внешних).
    Вмешиваться нехочу потомучто при обновлении движка будем иметь серезные проблемы. Как с работой новой версии так и с работой моего дополнения. Приходиться вести одельно лог-файл с подробным описанием изменений ядра, а при очередном обновлении мнять все обратно как было в оригинале, обновлять, потом опять мнеять движок под себя(по лог файлу). И я крайне отрицательно отношусь к сильному увеничению этого лог файла :)
     
  11. Astoret

    Astoret Активный пользователь

    С нами с:
    28 фев 2008
    Сообщения:
    9
    Симпатии:
    0
    эти пользоватили являються авторами курсов с которыми я общаюсь вживую и не прислушиваться к их пожеланиям для меня крайне непросто :)
     
  12. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    это они должны прислушиваться к тебе, а не хвост вилять собакой.