Страница 1 из 1

CListView случайная сортировка.

Добавлено: 2013.10.21, 12:03
cpentyc
Мне нужно что бы на разных страницах результат работы CListView был разный, но на самой странице результат должен быть всегда одинаковый.

Re: CListView случайная сортировка.

Добавлено: 2013.10.21, 12:12
sluchainiyznak
вот уже 4 раза прочитал и всё-равно не понимаю что здесь написано
нужна рандомная сортировка, пожалуйста - order by rand()

Re: CListView случайная сортировка.

Добавлено: 2013.10.21, 12:15
Bloom
Мм.. круто.
А мне нужно, чтобы каждый вечер коты ходили в туалет до того, как я лягу спать.
А то вечно так: ложишься, уже почти сон начинаешь видеть, а они по очереди начинают зарывать. Приходится просыпаться и убирать за ними лотки.

Re: CListView случайная сортировка.

Добавлено: 2013.10.21, 12:15
Bloom
sluchainiyznak писал(а):вот уже 4 раза прочитал и всё-равно не понимаю что здесь написано
нужна рандомная сортировка, пожалуйста - order by rand()
Ты не понял.. это топик "кому что нужно".

Re: CListView случайная сортировка.

Добавлено: 2013.10.21, 15:39
dmg
Я так понимаю необходима рандомная выборка при первом заходе, а при пагинации результат выборки сохранился...
Сделать выборку, сохранить массив в сессию и использовать arraydataprovider ?

Re: CListView случайная сортировка.

Добавлено: 2013.10.21, 16:16
cpentyc
sluchainiyznak писал(а):вот уже 4 раза прочитал и всё-равно не понимаю что здесь написано
нужна рандомная сортировка, пожалуйста - order by rand()
Если использовать order by rand() то когда два раза откроешь pade1.html результат на странице будет разный. А мне нужно что бы одинаковые данные array(1,2,3,4,5) на разных страницах Pade1 array(4,5,1,2,3) и pade2 array(3, 1,2 ,4,5) выводились в разном порядке. Но на pade1 всегда порядок был array(4,5,1,2,3)
Bloom писал(а):Мм.. круто.
А мне нужно, чтобы каждый вечер коты ходили в туалет до того, как я лягу спать.
А то вечно так: ложишься, уже почти сон начинаешь видеть, а они по очереди начинают зарывать. Приходится просыпаться и убирать за ними лотки.
А вам могу только посоветовать проверится у врача. Надеюсь программист вы лучше чем тролль.

Re: CListView случайная сортировка.

Добавлено: 2013.10.21, 17:27
vova07
Не идеальный метод но если сохранять порядок выводимых данных в базу не хочется можно использовать shuffle для вашего массива, чтобы все случайно перемешать, после чего засунуть результат в кэш с ключем страницы, и в момент повторных выводов выбирать уже данные из кэша.

Re: CListView случайная сортировка.

Добавлено: 2013.10.21, 17:57
Bloom
cpentyc писал(а): Если использовать order by rand() то когда два раза откроешь pade1.html результат на странице будет разный. А мне нужно что бы одинаковые данные array(1,2,3,4,5) на разных страницах Pade1 array(4,5,1,2,3) и pade2 array(3, 1,2 ,4,5) выводились в разном порядке. Но на pade1 всегда порядок был array(4,5,1,2,3)
Ну вот видишь, уже и задание хоть какое-то сформировалось. Почему мы должны из тебя все выпытывать? Слабо сразу все данные с примерами или со своим представлением решения?
Отвлеклись.
Ты написал: Но на pade1 всегда порядок был array(4,5,1,2,3) - это только в пределах сессии или глобально для всех пользователей всегда, даже после перезагрузки сервака?

Re: CListView случайная сортировка.

Добавлено: 2013.10.22, 08:54
cpentyc
Bloom писал(а):
cpentyc писал(а): Ты написал: Но на pade1 всегда порядок был array(4,5,1,2,3) - это только в пределах сессии или глобально для всех пользователей всегда, даже после перезагрузки сервака?
Даже при переносе на другой сервак

Re: CListView случайная сортировка.

Добавлено: 2013.10.22, 09:02
Bloom
Т.е. данные, отвечающие за сортировку, должны храниться в базе или в файле.
Использовать файл - ясное дело сильно затормозит работу скрипта.
Значит используем базу.
Количество страниц Page1 Page2 заранее известно? Оно ограничено или может быть сколько угодно?

Re: CListView случайная сортировка.

Добавлено: 2013.10.22, 09:08
Bloom
Чтоб не ждать заранее ответа - предположим, что количество страниц заранее известно и их 5 штук. Так-же количество страниц меняться не будет.
Создаем в нашей таблице еще 5 полей, назовем их Page1,Page2,Page3 и т.д.
Забиваем эти поля рандомными значениями от 0 до 1 000 000, вот и готовы поля, по которым мы будем сортировать.
Теперь в зависимости от страницы - сортируем по конкретному полю.

Второй вариант - сделать табличку отдельной, но придется связывать запрос через left goin, что может сказаться на скорости выполнения запроса.

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