djamali
@djamali
web developer

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

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


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

То есть у тебя например 50 купонов, значит тебе нужно рандомное число от 1 до 50. Получаешь рандомно айдишник купона и находишь юзера которому он принадлежит.
Ответ написан
delphinpro
@delphinpro
frontend developer
Вы некорректно задали вопрос.

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

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

Войти через центр авторизации
Похожие вопросы
Alytics Москва
от 100 000 до 120 000 руб.
Alytics Зеленоград
от 100 000 до 120 000 руб.
БюроБюро Калининград
от 60 000 до 120 000 руб.
18 окт. 2019, в 23:45
150000 руб./за проект
18 окт. 2019, в 20:01
15000 руб./за проект