Сортировка данных из MYSQL

Тема в разделе "PHP", создана пользователем hipachka, 30 мар 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. hipachka

    hipachka

    Регистр.:
    16 мар 2009
    Сообщения:
    391
    Симпатии:
    78
    Необходимо отсортировать данные по порядку. Эти данные являются числами т.е. ценой.

    Если я делаю запрос вида

    select * from category order by price
    То сортировка получается вот такая

    PHP:
    7,6,5,4,3,2,100,1
    Логично что 100 больше всех этих чисел, но как сделать чтобы вывод был правильный ?
     
  2. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    780
    Симпатии:
    153
    select * from category order by price ASC
    DESC в обратном порядке
     
  3. hipachka

    hipachka

    Регистр.:
    16 мар 2009
    Сообщения:
    391
    Симпатии:
    78
    Причем тут прямой обратный порядок ???
    Речь о том что из базы данные вытаскиваются не по порядку. В ценовом смысле.

    т.е. берется по первой цифре, например 1...

    Как я уже писал вот пример:
    PHP:
    7,6,5,4,3,2,100,1
    Логично что 100 больше всех этих чисел, но как сделать чтобы вывод был правильный ?
     
  4. krosar

    krosar Создатель

    Регистр.:
    29 июн 2009
    Сообщения:
    42
    Симпатии:
    4
    Дык а если сортировать по id?
     
  5. darth

    darth Постоялец

    Регистр.:
    19 апр 2006
    Сообщения:
    113
    Симпатии:
    18
    весьма загадочно, что же это за ордер который выводит не по порядку? проверь вывод непосредственно в майадмине
     
  6. hipachka

    hipachka

    Регистр.:
    16 мар 2009
    Сообщения:
    391
    Симпатии:
    78
    А зачем сортировать по ID если надо по цене ??


    Создал новый файл в котором написал

    PHP:
    <?
    $db mysql_connect ("localhost","root","");
    mysql_select_db("maga",$db);
    mysql_query('SET NAMES UTF8') or die(mysql_error());


    $rezultz mysql_query("SELECT * FROM notes order by price",$db);
    $myrowz mysql_fetch_array  ($rezultz) or die (mysql_error()."<br><b>$sql</b>");    

    do {
            
    printf ("

        
    %s<BR>

              

           "
    ,  $myrowz["price"]); 
                      
    }

    while (
    $myrowz mysql_fetch_array ($rezultz));




    ?>

    И вот что он мне вывел... Как проверить в myadmin вывод ?

    PHP:
    100
    110
    120
    200
    4
    5
    6
    7
    800
    Пока что в голову идет только одна мысль. подставлять везде вначале единичку допустим... пошел на хостинге попробую...
    Пробовал на денвере и на VDS от firstvds результат одинаковый....
     
  7. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    780
    Симпатии:
    153
    А тип поля с ценами какой у тебя?
     
  8. Yozik

    Yozik

    Регистр.:
    5 дек 2007
    Сообщения:
    239
    Симпатии:
    65
    А если так:
    PHP:
    $rezultz mysql_query("SELECT * FROM notes order by price ASC",$db);
     
  9. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    780
    Симпатии:
    153
    Вот так попробуй еще

    select * from category order by price+0
     
    hipachka нравится это.
  10. hipachka

    hipachka

    Регистр.:
    16 мар 2009
    Сообщения:
    391
    Симпатии:
    78
    Это ничего не дало:
    PHP:
    $rezultz mysql_query("SELECT * FROM notes order by price ASC",$db);  
    А совет удава добавить +0 к запросу помог. Кстати что это значит ? )

    Тип поля у меня такой:
    Другой вопрос, как сортировать по алфавиту ? т.е. допустим мы делаем сортировку по цене. Но пользователь еще может выбрать сортировку по заголовку. Как правильно сортировать по заголовку. Данные можно хранить в этом же поле ?
     
Статус темы:
Закрыта.