@kotmypkotov

Как выдать самые актуальные данные из БД на момент запроса?

Добрый день.
К сути, есть таблица такого формата:
| Текст | Количество | Текст |
| Текст1 | Количество | Текст1 |
и так далее.
На сайт обращается юзер, и при переходе на страницу ему выдаёт данные таким вот запросом:
SELECT * FROM tabla WHERE kol_vo <> 0 ORDER BY RAND() LIMIT 1

После неких действий юзер нажимает на кнопку и счётчик Количества в выданной ему строке уменьшается на одну единицу, ну и так по кругу, юзерам выдаются рандомно строки у которых Количество больше нуля. Раз в неделю счетчик обновляю в ручную.

Тык вот, бывает такая проблема что из-за рандома одна и та же строка может выдаться в день всё количество раз которое необходимо было выдавать плавно на протяжении недели.
Как реализовать плавное распределение выдачи актуальной строки именно в момент запроса?

Если вопрос не понятен, могу разжевать ещё) Я просто только учусь, и сейчас от этого зависит моя работа на хлеб с маслом)
Очень нужна помощь.
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
Неизвестно количество пользователей и количество вот таких строк и как часто он будет заходить на страницу и жмакать кнопку.

но можно попробовать сформировать некий список (Таблица М:М между Юзерами и Вашей_таблицей) заранее, случайно распределенных записей для каждого конкретного пользователя, и выдавать ему в первый раз 1ю строку, после Клика - менять текущую позицию Юзера, сдвигая ее вниз на одну. Если дошел до конца списка - менять на первую, вероятно, или генерить новый список.

Это будет плавное распределение по всем строчам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы