Как сказал Доминик Роджер - заказ по ранду ужасен.
Но я считаю, что использование cron слишком большое оружие для этой работы. (тем более, что Ты не умеешь)
Вы должны сгенерировать случайное целое число в php, сохранить его и передать его в mysql примерно так:
SELECT * FROM table WHERE id=(MOD('.$php_generated_random.', LAST_INSERT_ID())+1)
он получает большое случайное число и делает это по модулю, чтобы он не превышал длину таблицы.
Это проблема с LAST_INSERT_ID()
. Ваш mysql может вернуть 0 во многих случаях.
Так что хороший и безопасный способ сделать это будет:
- проверить, пора ли генерировать новое случайное число
- если это так, то получить максимальный идентификатор из таблицы (при условии, что длина таблицы иногда изменяется)
- генерирует случайное число в качестве идентификатора
- сохранить идентификатор и время генерации
и выберите только где id = $ sth