Программирование > PHP

Незнаю к чему это больше отнести к PHP или к MySQL. Чудной способ перемешивания...

(1/2) > >>

nobody:
Проблема состоит вот в чем нужно вывести результаты из базы данных и перемешать их, что бы он не шли последовательно как в базе...
Вы скажете чего проще грузи результат в масив и мешай как душе угодно...
Но как всегда есть маленькие но...
Проблема в том что вывод результата должен быть разбит на страници, а если в базе более 10.000 записей пердставляете как все затормазиться?
Алгоритм я примерно представляю, а как осуществить кодом неселен...
Алгоритм такой...
1. Считать из базы все ID
2. Загнать их в масив и пермешать
3. Создать в MySql временную таблицу и загнать перемешанный результат туда
4. Затем построить запрос и вывод результата с использованием временной таблици с ID соответственно разбив на нужное количество записей...

Хотя может это и не лучший вариант :)

Britva:
а почему бы не сделать обычный "select ... order by rand() limit $perpage"
т.е. случайным образом перемешать, и выводить первые $perpage записей из таблицы. зачем нагружать сервер, все равно это будут случайные записи, а смысла в разбитии на страницы я не вижу.

nobody:
Мне ненежно только несколько случайных.
А насчет нагрузки на сервер - это уже проблема хостера.

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

nobody:

--- Цитировать ---А можно поинтересоваться почему именно так нужно?
--- Конец цитаты ---

Просто представь :) сайт знакомств - огромное количество онкет... Соответственно по мере дополнения объявлений старые уходят в бездну и соответственно пользователю будет довольно неинтересно что там за анкеты были добавленны с утра, он посмотрит только первых несколько. А это как известно не будет хорошо, а когда их вывести случайным образом то все будут в равном положении. Я передусматривал сортировку за тикущей день.

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

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии