[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неправильная сортировка
freaky
не понимаю...вот запрос
$result = mysql_query("SELECT * FROM clubs ORDER BY finance DESC LIMIT 20",$db);
$myrow = mysql_fetch_array ($result);


неправильно сортирует, сначала выводит, например, 700000, а потом 7000000...а потом уже сортировка правильно идёт, и вообще странно DESC это вроде с конца считать должен, а у меня считает сначала...пачиму подскажите?



Спустя 16 минут, 45 секунд (10.01.2010 - 19:47) waldicom написал(а):
А поле finance какого типа? Видимо не числвое...

Спустя 32 секунды (10.01.2010 - 19:47) freaky написал(а):
varchar в базе а какое надо?

Спустя 1 минута, 27 секунд (10.01.2010 - 19:49) waldicom написал(а):
Цитата (freaky @ 10.01.2010 - 18:47)
varchar в базе а какое надо?

А откуда я знаю, какого надо...

Спустя 20 минут, 7 секунд (10.01.2010 - 20:09) uMnepaTop написал(а):
INT я думаю)

Спустя 25 минут, 10 секунд (10.01.2010 - 20:34) freaky написал(а):
int сделал, всё равно не помогает...всё так же...ерунда какая то...desc и asc работают наоборот...да и сортирует впринципе как то неправильно...

Спустя 6 минут, 11 секунд (10.01.2010 - 20:40) uMnepaTop написал(а):
Может быть
mysql_fetch_assoc
попробывать? ph34r.gif
я например, только им и пользуюсь, и ИНТ у меня нормально сортирует)

Спустя 6 минут, 24 секунды (10.01.2010 - 20:46) freaky написал(а):
к сожалению это тоже не помогает(

Спустя 2 минуты, 16 секунд (10.01.2010 - 20:49) uMnepaTop написал(а):
Странно blink.gif

Спустя 49 секунд (10.01.2010 - 20:49) freaky написал(а):
согласен.

Спустя 2 часа, 37 минут, 38 секунд (10.01.2010 - 23:27) uMnepaTop написал(а):
Только что потестил, и все прекрасно работает... Значит это не код, а что-то другое =\
Ибо вот такой бред:
$result = mysql_query("SELECT * FROM `test` ORDER BY `price` DESC LIMIT 10");
while (list($id, $clubname, $price) = mysql_fetch_row($result))
{
echo <<<HTML
{$id} - {$clubname} - {$price} <br />
HTML;
}

прекрасно работает =\
поле price (где есть цифры 70000-700000) на INT'e huh.gif

Спустя 3 часа, 18 минут, 19 секунд (11.01.2010 - 02:45) Dron19 написал(а):
Просто нужно понимать оператор DESC, при обычной сортировке в данном случае цифр отсчет идет с меньших чисел, а этот оператор говорит, что выбор должен быть наоборот, то есть с больших чисел.

Спустя 9 часов, 35 минут, 15 секунд (11.01.2010 - 12:21) Guest написал(а):
Ну так он у него и не работает =\

Спустя 59 минут, 23 секунды (11.01.2010 - 13:20) sergeiss написал(а):
Если честно - не верю, что "всё правильно", но при этом не работает.

Проверь еще раз, какой тип данных у тебя, по которому ты сортируешь. И что именно там имеется, какие данные.

Спустя 26 минут, 29 секунд (11.01.2010 - 13:47) jetistyum написал(а):
сначала 700 потом 7000 (или наоборот) это сортировка текстового поля. Либо ты не конвертнул, либо недоконвертнулось..

Спустя 1 час, 40 минут, 3 секунды (11.01.2010 - 15:27) freaky написал(а):
что значит конвертнул?
поле содержить целые числа типа 34000 или 4500000...тип сначала был варчар, потом на инт поменял, но ничего не изменилось...(

Спустя 2 минуты, 12 секунд (11.01.2010 - 15:29) freaky написал(а):
пишу ORDER BY finance ASC и он мне выводит например сначала 700 а потом уже 4000..зотя 4 тысячи больше чем 700 и должны первыми стоять...а у меня наоборот

Спустя 4 минуты, 12 секунд (11.01.2010 - 15:33) jetistyum написал(а):
ASC - сортировка по возрастанию (1,2,3,4,5,60000)
700 меньше чем 4000 поэтому сначала 700, потом 4000

Спустя 7 минут, 47 секунд (11.01.2010 - 15:41) freaky написал(а):
ааа...понял теперь...спасибо за подсказку...на локалке тип варчар всё правильно показывает...на хостинге не правильно показывает...сделал тип инт на хосте стал правильно...пипец бред какой то...но тем неменее разобрвался с этой сортировкой!!! спасибо за подсказки)))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.