djamali
@djamali
web developer

Как правильно сделать рандомный выбор?

Добрый вечер. У меня есть таблица вида
product_id     coupon_count     user
50                  1                         mike
50                  3                         alex
50                  1                         nicole


Каждый пользователь имеет определенное количество купленных купонов. Нужно рандомно выбрать победителя. Трудность в том что у одного пользователя может быть более одного купона. То есть естественно что у такого пользователя должно быть больше шансов. Думаю что одними запросами здесь не выкрутиться, нужно работать с массивами php
  • Вопрос задан
  • 274 просмотра
Пригласить эксперта
Ответы на вопрос 2
anton_reut
@anton_reut
Начинающий веб-разработчик
У каждого купона должен быть уникальный id. Находишь общее количество купонов, и делаешь rand($min, $max) указав конечную цифру как максимальное кол-во купонов. Каждый купон должен иметь id пользователя которому принадлежит.

То есть у тебя например 50 купонов, значит тебе нужно рандомное число от 1 до 50. Получаешь рандомно айдишник купона и находишь юзера которому он принадлежит.
Ответ написан
Adamos
@Adamos
Число = RAND() * сумма всех купонов в таблице.
Перебираем записи, накапливая сумму, пока она не станет больше этого числа.
Та, на которой это случилось - победитель. Все.
Реализуется и на SQL, при помощи пары переменных.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы