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

Статус
В этой теме нельзя размещать новые ответы.

hipachka

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

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

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

PHP:
7,6,5,4,3,2,100,1
Логично что 100 больше всех этих чисел, но как сделать чтобы вывод был правильный ?
 
select * from category order by price ASC
DESC в обратном порядке
 
select * from category order by price ASC
DESC в обратном порядке
Причем тут прямой обратный порядок ???
Речь о том что из базы данные вытаскиваются не по порядку. В ценовом смысле.

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

Как я уже писал вот пример:
PHP:
7,6,5,4,3,2,100,1
Логично что 100 больше всех этих чисел, но как сделать чтобы вывод был правильный ?
 
Дык а если сортировать по id?
 
весьма загадочно, что же это за ордер который выводит не по порядку? проверь вывод непосредственно в майадмине
 
А зачем сортировать по 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 результат одинаковый....
 
А тип поля с ценами какой у тебя?
 
А если так:
PHP:
$rezultz = mysql_query("SELECT * FROM notes order by price ASC",$db);
 
Вот так попробуй еще

select * from category order by price+0
 
Это ничего не дало:
PHP:
$rezultz = mysql_query("SELECT * FROM notes order by price ASC",$db);
А совет удава добавить +0 к запросу помог. Кстати что это значит ? )

Тип поля у меня такой:
`price` varchar(255) default NULL,
Другой вопрос, как сортировать по алфавиту ? т.е. допустим мы делаем сортировку по цене. Но пользователь еще может выбрать сортировку по заголовку. Как правильно сортировать по заголовку. Данные можно хранить в этом же поле ?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху