djamali
@djamali
web developer

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

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


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

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

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

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

Войти через центр авторизации
Похожие вопросы
Living Core Казань
от 50 000 руб.
РосТендер Москва
от 130 000 до 150 000 руб.
retailCRM Ростов-на-Дону
от 25 000 до 40 000 руб.