|
|
|
| добрый день, помогите:
вот странные вещи происходят
делаю вывод из базы, по 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:37)
| | может нужно ввести идентификаторы от 1 до 6, что бы по ним сотрировать? без нуля? | |
|
|
|
|
автор: 234234 (23.06.2009 в 22:45) |
|
|
для: AN
(23.06.2009 в 22:37)
| | Нет. 0 такое же число, как и 1, 2, 3, ..., 1024, ..., 65535, ... | |
|
|
|
|
|
|
|
для: 234234
(23.06.2009 в 22:45)
| | а чего же оно при выводе каждых новых 50 записей выводит дубликаты? и что то теряет | |
|
|
|
|
автор: 324234 (23.06.2009 в 22:57) |
|
|
для: AN
(23.06.2009 в 22:48)
| | Значит в таблице есть дубликаты. И как Вы проверяете, что оно "что-то теряет"? | |
|
|
|
|
|
|
|
для: AN
(23.06.2009 в 22:48)
| | А это CatalogStatus - уникальный ключ?
Очевидно, нет.
Тогда с чего Вы ждете детерминированного результата?
Или у Вас в пределах одной страницы данные дублируются? | |
|
|
|
|
|
|
|
для: Trianon
(23.06.2009 в 22:59)
| | CatalogStatus - конечно имеет дубликаты, но есть уникальное поле ID
вот я сортирую по дубликатам! и последовательность должна же быть какой то одной?
а такое впечатление что при каждом запросе на промежуток 50 страниц оно сортирует по разному и выводит разную последовательность ... | |
|
|
|
|
|
|
|
для: AN
(23.06.2009 в 23:38)
| | >CatalogStatus - конечно имеет дубликаты, но есть уникальное поле ID
Но Вы-то его в списке ключей сортировки не указываете?
>вот я сортирую по дубликатам!
непонятно.
>и последовательность должна же быть какой то одной?
почему? Вовсе нет.
>а такое впечатление что при каждом запросе на промежуток 50 страниц оно сортирует по разному и выводит разную последовательность ...
такова природа сортировки по неоднозначному ключу. | |
|
|
|
|
|
|
|
для: Trianon
(23.06.2009 в 22:59)
| | данные дублируются не в пределах одной страницы, а на разных ...
а как сделать чтобы они не дублировались? | |
|
|
|
|
автор: 23423 (24.06.2009 в 00:03) |
|
|
для: AN
(23.06.2009 в 23:39)
| | ORDER BY CatalogStatus DESC, ID ASC | |
|
|
|
|
|
|
|
для: 234234
(23.06.2009 в 22:45)
| | 0 - цифра, 1024 - число. Не надоело анОнимить | |
|
|
|
|
|
|
|
для: mihdan
(24.06.2009 в 10:58)
| | 0 - это число состоящее из одной цифры) | |
|
|
|
|
|
|
|
для: 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 - не число. так и запишем. | |
|
|
|
|
|
|
|
для: 34534
(24.06.2009 в 20:32)
| | так чего, лучше 0 не использовать? | |
|
|
|
|
автор: 53453 (24.06.2009 в 22:00) |
|
|
для: AN
(24.06.2009 в 21:44)
| | Я ничего против не имею. | |
|
|
|