Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблемы с сортировкой полей с нулями
 
 автор: AN   (23.06.2009 в 22:37)   письмо автору
 
 

добрый день, помогите:

вот странные вещи происходят
делаю вывод из базы, по 50 на страницу, всего около 200 записей с помощью запросов

SELECT count(*) FROM catalog  // тут подсчитываю

$result=mysql_query("SELECT * FROM catalog ORDER BY CatalogStatus DESC LIMIT ".(($page-1)*$count_on_page).", $count_on_page") or die("SQL ERROR 2");


в поле CatalogStatus у всех значения 5 или 4 или 3 или 2 или 1 или 0
и выводит мне дубликаты записей на разных страницах , а некоторые записи не выводит вообще ...
на первый взгляд у кого CatalogStatus=0

подскажите, если сортировать по значению 0 не может быть глюков?

  Ответить  
 
 автор: AN   (23.06.2009 в 22:41)   письмо автору
 
   для: AN   (23.06.2009 в 22:37)
 

может нужно ввести идентификаторы от 1 до 6, что бы по ним сотрировать? без нуля?

  Ответить  
 
 автор: 234234   (23.06.2009 в 22:45)
 
   для: AN   (23.06.2009 в 22:37)
 

Нет. 0 такое же число, как и 1, 2, 3, ..., 1024, ..., 65535, ...

  Ответить  
 
 автор: AN   (23.06.2009 в 22:48)   письмо автору
 
   для: 234234   (23.06.2009 в 22:45)
 

а чего же оно при выводе каждых новых 50 записей выводит дубликаты? и что то теряет

  Ответить  
 
 автор: 324234   (23.06.2009 в 22:57)
 
   для: AN   (23.06.2009 в 22:48)
 

Значит в таблице есть дубликаты. И как Вы проверяете, что оно "что-то теряет"?

  Ответить  
 
 автор: Trianon   (23.06.2009 в 22:59)   письмо автору
 
   для: AN   (23.06.2009 в 22:48)
 

А это CatalogStatus - уникальный ключ?
Очевидно, нет.
Тогда с чего Вы ждете детерминированного результата?
Или у Вас в пределах одной страницы данные дублируются?

  Ответить  
 
 автор: AN   (23.06.2009 в 23:38)   письмо автору
 
   для: Trianon   (23.06.2009 в 22:59)
 

CatalogStatus - конечно имеет дубликаты, но есть уникальное поле ID
вот я сортирую по дубликатам! и последовательность должна же быть какой то одной?
а такое впечатление что при каждом запросе на промежуток 50 страниц оно сортирует по разному и выводит разную последовательность ...

  Ответить  
 
 автор: Trianon   (24.06.2009 в 00:04)   письмо автору
 
   для: AN   (23.06.2009 в 23:38)
 

>CatalogStatus - конечно имеет дубликаты, но есть уникальное поле ID

Но Вы-то его в списке ключей сортировки не указываете?

>вот я сортирую по дубликатам!

непонятно.

>и последовательность должна же быть какой то одной?

почему? Вовсе нет.


>а такое впечатление что при каждом запросе на промежуток 50 страниц оно сортирует по разному и выводит разную последовательность ...

такова природа сортировки по неоднозначному ключу.

  Ответить  
 
 автор: AN   (23.06.2009 в 23:39)   письмо автору
 
   для: Trianon   (23.06.2009 в 22:59)
 

данные дублируются не в пределах одной страницы, а на разных ...
а как сделать чтобы они не дублировались?

  Ответить  
 
 автор: 23423   (24.06.2009 в 00:03)
 
   для: AN   (23.06.2009 в 23:39)
 

ORDER BY CatalogStatus DESC, ID ASC

  Ответить  
 
 автор: mihdan   (24.06.2009 в 10:58)   письмо автору
 
   для: 234234   (23.06.2009 в 22:45)
 

0 - цифра, 1024 - число. Не надоело анОнимить

  Ответить  
 
 автор: Valick   (24.06.2009 в 11:38)   письмо автору
 
   для: mihdan   (24.06.2009 в 10:58)
 

0 - это число состоящее из одной цифры)

  Ответить  
 
 автор: AN   (24.06.2009 в 19:04)   письмо автору
 
   для: Valick   (24.06.2009 в 11:38)
 

спасибо!
ORDER BY CatalogStatus DESC, ID ASC
вроде работает

я вот что хочу сделать!
мне нужно чтобы выводились клиенты, с начала с приоритетом 5, потом 4, потом 3 ....
и чтобы каждая группа время от времени тусовалась случайно!
то есть если скажем 30 клиентов с высшим приоритетом 5 всегда выводились в первой тридцатке, только между собой время от времени по разному ...
вот у меня есть в каталоге поле приоритетов для клиентов 0-5 и я ввиду поле CatalogSort
в поле CatalogSort раз в сутки буду вносить случайное значение =RAND()
запрос получится таким
ORDER BY CatalogStatus DESC, CatalogSort ASC

нормально будет такое работать?

  Ответить  
 
 автор: 34534   (24.06.2009 в 20:32)
 
   для: mihdan   (24.06.2009 в 10:58)
 

>0 - цифра, 1024 - число. Не надоело анОнимить
ага, значит 0 - не число. так и запишем.

  Ответить  
 
 автор: AN   (24.06.2009 в 21:44)   письмо автору
 
   для: 34534   (24.06.2009 в 20:32)
 

так чего, лучше 0 не использовать?

  Ответить  
 
 автор: 53453   (24.06.2009 в 22:00)
 
   для: AN   (24.06.2009 в 21:44)
 

Я ничего против не имею.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования