Программирование > PHP
Незнаю к чему это больше отнести к PHP или к MySQL. Чудной способ перемешивания...
nobody:
Проблема состоит вот в чем нужно вывести результаты из базы данных и перемешать их, что бы он не шли последовательно как в базе...
Вы скажете чего проще грузи результат в масив и мешай как душе угодно...
Но как всегда есть маленькие но...
Проблема в том что вывод результата должен быть разбит на страници, а если в базе более 10.000 записей пердставляете как все затормазиться?
Алгоритм я примерно представляю, а как осуществить кодом неселен...
Алгоритм такой...
1. Считать из базы все ID
2. Загнать их в масив и пермешать
3. Создать в MySql временную таблицу и загнать перемешанный результат туда
4. Затем построить запрос и вывод результата с использованием временной таблици с ID соответственно разбив на нужное количество записей...
Хотя может это и не лучший вариант :)
Britva:
а почему бы не сделать обычный "select ... order by rand() limit $perpage"
т.е. случайным образом перемешать, и выводить первые $perpage записей из таблицы. зачем нагружать сервер, все равно это будут случайные записи, а смысла в разбитии на страницы я не вижу.
nobody:
Мне ненежно только несколько случайных.
А насчет нагрузки на сервер - это уже проблема хостера.
Britva:
получается надо сохранять где-то этот массив, потому что при переходе на следующую страницу, массив опять будет случайным образом разбит.
так что где-нибудь в куках/сессиях.
А можно поинтересоваться почему именно так нужно?
nobody:
--- Цитировать ---А можно поинтересоваться почему именно так нужно?
--- Конец цитаты ---
Просто представь :) сайт знакомств - огромное количество онкет... Соответственно по мере дополнения объявлений старые уходят в бездну и соответственно пользователю будет довольно неинтересно что там за анкеты были добавленны с утра, он посмотрит только первых несколько. А это как известно не будет хорошо, а когда их вывести случайным образом то все будут в равном положении. Я передусматривал сортировку за тикущей день.
А что бы избавиться от того что при переходе на следующию страницу не происходила сортировка, я и предусмотрел временную таблицу, но это уже MySql...Britva
Britva
Навигация
Перейти к полной версии