Здравствуйте. Заранее прошу прощения, если мои вопросы и методы покажутся "глупыми", но я недавно начал изучать php и пока просто изучаю возможности. Столкнулся с такой проблемкой: Дано: Таблица с событием (id, com1, com2) - айди, команда1, команда2. Таблица с игроками (id, login, money) - айди, логин, количество денег. Таблица со ставками (id_event, user, command, stavka, koeff, status) - айди_события, игрок, команда, ставка, коэффициент, статус. Например: Событие: (id, com1, com2) (1, команда1, команда2) Пользователи: (id, login, money) (1, Valera, 100), (2, Cyber, 15), (3, Woodi, 56) Ставки: (id_event, user, command, stavka, koeff, status) (1, Valera, команда1, 20, 1.3, 1) (1, Cyber, команда1, 30, 1.3, 1) (1, Woodi, команда2, 15, 2.8, 1) Нужно: Чтобы при победе "команды1" игроки "Valera" и "Cyber" получили деньги (формула: деньги + ставка * коэф.) в таблицу с "игроками" и статус в таблице со "ставками" изменился на "2". А у проигравшего статус изменился на "3". (При завершении события я отправляю форму с итогами и хочу, чтобы с итогами отправлялись результаты ставок) Пробовал: Код (PHP): <? /* Тут выборка денег игрока и id события, где деньги = $usermoney, а id события = $id_event */ $stmt = $mysqli->prepare('SELECT `user`, `command`, `stavka`, `koeff`, `status` FROM `stavki` WHERE `id_event`=? AND `com1`=? AND `status`=1'); $stmt->bind_param('is', $id_event, $win_com1); $stmt->execute(); $stmt->bind_result($s_user, $s_com, $s_stav, $s_koeff, $s_stat); $stmt->store_result(); $stmt->fetch(); $stmt->close(); $stav_win = $s_stav * $s_koeff; $money_new = $usermoney + $stav_win; $stmt = $mysqli->prepare('UPDATE `users` SET `money`=? WHERE `login`=?'); $stmt->bind_param('ss', $money_new, $s_user); $stmt->execute(); $stmt->close(); $stmt = $mysqli->prepare('UPDATE `stavki` SET `status`=2 WHERE `user`=?'); $stmt->bind_param('s', $s_user); $stmt->execute(); $stmt->close(); ?> Проблема: При таком раскладе изменяется только первый игрок сделавший ставку, но каким образом сделать чтобы изменения косались всех игроков со статусом 1?
Вопрос как-то связан с заголовком этой темы? Если тебе надо проапдейтить несколько строк, то требуется одно из двух: - либо в UPDATE … WHERE условие указать такое условие, которое соответствует сразу нескольким строкам, - либо для каждого значения айди вызывать отдельный UPDATE … WHERE айди=чтототам. просто перечислить несколько таких команд или в цикле вызывать. Не вижу чтобы ты пытался это сделать.