Крч есть скрипт который отправляет сообщение пользователю моего сайта, а надо сделать что бы он отправлял сразу всем пользователям, уже часов 10 мучаюсь и голова вообще не варит, может кто сможет помочь за симпу if (isset($_POST['to_user'])) { $to_user = htmlspecialchars($_POST['to_user']); $theme = htmlspecialchars($_POST['tema']); $text = htmlspecialchars($_POST['message']); $status = 0; $date = time(); $db->Query("SELECT * FROM db_users_a WHERE user = '$to_user'"); $kol = $db->NumRows(); $us = $db->FetchArray(); $us_in = $us['id']; $login_in = $us['user']; if($kol > 0) { if(!empty($theme)) { if(!empty($text)) { if($cena <= $user_data['money_b']) { $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$us_in', '$login_in', '$usid', '$usname', '$theme', '$text', '$status', '$date', 1)"); $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, outbox) VALUES ('$us_in', '$login_in', '$usid', '$usname', '$theme', '$text', '$status', '$date', 1)"); $db->Query("UPDATE db_users_b SET money_b = money_b - '$cena' WHERE id = '$usid'"); echo ("<center>Сообщение отправлено игроку $login_in</center>"); }else echo ("Недостаточный баланс для отправки сообщения!</center>"); }else echo ("Введите текст сообщения</center>"); }else echo ("<center>Введите тему сообщения</center>"); }else echo ("<center>Данного игрока не существует!</center>"); } ?> <table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td> <br> <form method="post" action=""> <label for="ex1">Ник игрока</label> <input name="to_user" value="" type="text" size="20" maxlength="50" class="form-control" id="ex1"/> <br> <label for="ex1">Тема сообщения (до 150 символов)</label> <input name="tema" value="" type="text" size="20" maxlength="150" class="form-control" id="ex1"/> <br> <label>Текст сообщения</label><br> <textarea name="message" class="form-control" rows="5" cols="40"></textarea> <br /> <input class="btn btn-default" type="submit" name="send" value="Отправить уведомление" /> </form> </td></tr> </tbody></table> Код if (isset($_POST['to_user'])) { $to_user = htmlspecialchars($_POST['to_user']); $theme = htmlspecialchars($_POST['tema']); $text = htmlspecialchars($_POST['message']); $status = 0; $date = time(); $db->Query("SELECT * FROM db_users_a WHERE user = '$to_user'"); $kol = $db->NumRows(); $us = $db->FetchArray(); $us_in = $us['id']; $login_in = $us['user']; if($kol > 0) { if(!empty($theme)) { if(!empty($text)) { if($cena <= $user_data['money_b']) { $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$us_in', '$login_in', '$usid', '$usname', '$theme', '$text', '$status', '$date', 1)"); $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, outbox) VALUES ('$us_in', '$login_in', '$usid', '$usname', '$theme', '$text', '$status', '$date', 1)"); $db->Query("UPDATE db_users_b SET money_b = money_b - '$cena' WHERE id = '$usid'"); echo ("<center>Сообщение отправлено игроку $login_in</center>"); }else echo ("Недостаточный баланс для отправки сообщения!</center>"); }else echo ("Введите текст сообщения</center>"); }else echo ("<center>Введите тему сообщения</center>"); }else echo ("<center>Данного игрока не существует!</center>"); } ?> <table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td> <br> <form method="post" action=""> <label for="ex1">Ник игрока</label> <input name="to_user" value="" type="text" size="20" maxlength="50" class="form-control" id="ex1"/> <br> <label for="ex1">Тема сообщения (до 150 символов)</label> <input name="tema" value="" type="text" size="20" maxlength="150" class="form-control" id="ex1"/> <br> <label>Текст сообщения</label><br> <textarea name="message" class="form-control" rows="5" cols="40"></textarea> <br /> <input class="btn btn-default" type="submit" name="send" value="Отправить уведомление" /> </form> </td></tr> </tbody></table>
user_id_in кому user_id_out куда Делаешь запрос SELECT * FROM db_users_a Потом в моменте отправки считаешь количество пользователей * стоимость отправки если > баланса отправляешь, отправляешь foreach по базе db_users_a делаешь инсерты, только не каждый шаг insert а строку сделай и в конце 1 запрос выполни.(Читай про множественный Insert (Insert into table_name (id,...) values (1,..),(2,..),(3,..)...))
mysqyrlex, Можешь по подробней все расписать? я в php можно сказать 0 дак еще осознал что все эти 10 часов потратил в пустую)
Псевдокод/алгоритм напишу дальше сам Проверяешь все ли условия выполнены : указана тема и тело сообщения Получить список всех пользователей Select * from db_users Получить инфу по пользователю который отправляет, Id, кол-во бабла if ( количество строк из таблицы юзер * стоимость сообщения < колво баба) for (i=0;i<количество строк из таблицы юзер;i++) { $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$us_in', '$login_in', '$usid', '$usname', '$theme', '$text', '$status', '$date', 1)"); // Данные поменяй на элемент цикла } В конце баланс пользователя = баланс пользователя - количество строк из таблицы юзер * стоимость сообщения
mysqyrlex, Все равно не чего не понял, мне посоветовали сделать убрать where user=user сделал так но сообщение теперь отравляется мне, может у кого еще какие то варики есть?