2013-08-22 7 views
-1

У меня есть вопросы для отображения продукта каждый час? Это означает, что каждый час продукты меняются случайным образом. Единственное условие - после обновления страницы порядок продукта не должен меняться, и только через 1 час он должен быть изменен. Я использовал MySQL, так что я нужен новый метод «ORDER BY RAND(), то решить мою проблему или любую новую идею вот мой код:.Показать продукты каждый час с помощью mysql?

$sql = "SELECT * FROM products where status = 1 ".$where." ORDER BY RAND()"; 

, как я могу установить время или любую другую функцию для исправления это любая идея ??? Даже я использую javascript для исправления, но id не работает?

+0

Ваш вопрос непонятен, и я понятия не имею, чего вы пытаетесь достичь. Пожалуйста, перефразируйте свой вопрос, чтобы он стал более четким и опубликовал структуру таблицы продуктов. – Technoh

+0

Я редактирую свой вопрос, вы поняли мою точку зрения? – user2708492

ответ

0

Простой способ изменить это случайным образом каждый час должен был передать текущий час в качестве начального значения функции rand , однако это не гарантирует, что каждый час будет новый продукт - один и тот же продукт может быть выбран снова. Если это нормально для вашего сайта, так я реализую случайную функцию:

rand(round(to_seconds(now())/3600)) 

Чтобы разбить его:

now() возвращает текущую TIMESTAMP

to_seconds() преобразует временную метку к междунар, указанной в секундах с года 0.

Затем разделить значение, возвращаемое to_seconds() на несколько секунд, например 3600 на один час или 60 на одну минуту.

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

+0

Простите, отправил его, прежде чем переписывать свой вопрос. Я думал, что тебе просто нужна случайная величина, которая меняется каждый час. –

+0

Итак, я должен добавить эту строку после ORDER BY()? Like: $ sql = "SELECT * FROM products, где status = 1". $ Where. "ORDER BY RAND()"; – user2708492

+0

Подождите, перечитайте свой вопрос снова. Он может ответить на вопрос: D 'SELECT * FROM products, где status = 1". $ Where. " ORDER BY rand (round (to_seconds (now())/3600)) 'если он работает так, как мне кажется –

Смежные вопросы