За последние 24 часа нас посетили 22879 программистов и 1272 робота. Сейчас ищут 808 программистов ...

Уведомление всем пользователям

Тема в разделе "PHP и базы данных", создана пользователем iiieva, 31 янв 2019.

  1. iiieva

    iiieva Новичок

    С нами с:
    31 янв 2019
    Сообщения:
    6
    Симпатии:
    0
    Крч суть такая, есть скрипт который определенному пользователю отправляет уведомление, помогите сделать что бы скрипт оправлял всем пользователям из базы
    Код (Text):
    1. <?
    2. $usid = $_SESSION["user_id"];
    3. $usname = $_SESSION["user"];
    4. $db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
    5. $user_data = $db->FetchArray();
    6. ?>
    7. <div class="page-header">
    8.     <h1>Уведомления</h1>
    9. </div>
    10. <table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
    11.    <tr>
    12.     <td align="center" class="list-group-item"><a style='color:black;' href='/?menu=WarStock&sel=notify'>Написать уведомление</a></td>
    13.   </tr>
    14. </table>
    15. <?
    16. if (isset($_POST['to_user'])) {
    17. $to_user = htmlspecialchars($_POST['to_user']);
    18. $theme = htmlspecialchars($_POST['tema']);
    19. $text = htmlspecialchars($_POST['message']);
    20.  
    21. $status = 0;
    22. $date = time();
    23. $db->Query("SELECT * FROM db_users_a WHERE user = '$to_user'");
    24. $kol = $db->NumRows();
    25. $us = $db->FetchArray();
    26. $us_in = $us['id'];
    27. $login_in = $us['user'];
    28.     if($kol > 0) {
    29.             if(!empty($theme)) {
    30.                 if(!empty($text)) {
    31.                         $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)");
    32.                        
    33.                         $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)");
    34.                         echo ("<center>Сообщение отправлено игроку $login_in</center>");
    35.                 }else echo ("Введите текст сообщения</center>");
    36.             }else  echo ("<center>Введите тему сообщения</center>");
    37.     }else  echo ("<center>Данного игрока не существует!</center>");
    38. }
    39. ?>
    40. <table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td>
    41. <br>
    42. <form method="post" action="">
    43.   <label for="ex1">Ник игрока</label>
    44.   <input name="to_user" value="" type="text" size="20" maxlength="50" class="form-control" id="ex1"/>
    45. <br>
    46.   <label for="ex1">Тема сообщения (до 150 символов)</label>
    47.   <input name="tema" value="" type="text" size="20" maxlength="150" class="form-control" id="ex1"/>
    48. <br>
    49. <label>Текст сообщения</label><br>
    50. <textarea name="message" class="form-control" rows="5" cols="40"></textarea>
    51. <br />
    52. <input class="btn btn-default" type="submit" name="send" value="Отправить уведомление" />
    53. </form>
    54. </td></tr>
    55. </tbody></table>
     
  2. username1

    username1 Новичок

    С нами с:
    23 янв 2019
    Сообщения:
    33
    Симпатии:
    2
    убрать where user=user
     
  3. iiieva

    iiieva Новичок

    С нами с:
    31 янв 2019
    Сообщения:
    6
    Симпатии:
    0
    если я правильно понял, то сделал так, но все равно не рабтает
    Код (Text):
    1. <?
    2. $usid = $_SESSION["user_id"];
    3. $usname = $_SESSION["user"];
    4. $db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
    5. $user_data = $db->FetchArray();
    6. ?>
    7. <div class="page-header">
    8.     <h1>Уведомления</h1>
    9. </div>
    10. <table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
    11.    <tr>
    12.     <td align="center" class="list-group-item"><a style='color:black;' href='/?menu=WarStock&sel=notify'>Написать уведомление</a></td>
    13.   </tr>
    14. </table>
    15. <?
    16. if (isset($_POST['to_user'])) {
    17. $to_user = htmlspecialchars($_POST['to_user']);
    18. $theme = htmlspecialchars($_POST['tema']);
    19. $text = htmlspecialchars($_POST['message']);
    20.  
    21. $status = 0;
    22. $date = time();
    23. // $db->Query("SELECT * FROM db_users_a");
    24. $kol = $db->NumRows();
    25. $us = $db->FetchArray();
    26. $us_in = $us['id'];
    27. $login_in = $us['user'];
    28.             if(!empty($theme)) {
    29.                 if(!empty($text)) {
    30.                         $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)");
    31.                      
    32.                         $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)");
    33.                         echo ("<center>Сообщение отправлено игроку $login_in</center>");
    34.                 }else echo ("Введите текст сообщения</center>");
    35.             }else  echo ("<center>Введите тему сообщения</center>");
    36. }
    37. ?>
    38. <table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td>
    39. <br>
    40. <form method="post" action="">
    41.   <label for="ex1">Ник игрока</label>
    42.   <input name="to_user" value="" type="text" size="20" maxlength="50" class="form-control" id="ex1"/>
    43. <br>
    44.   <label for="ex1">Тема сообщения (до 150 символов)</label>
    45.   <input name="tema" value="" type="text" size="20" maxlength="150" class="form-control" id="ex1"/>
    46. <br>
    47. <label>Текст сообщения</label><br>
    48. <textarea name="message" class="form-control" rows="5" cols="40"></textarea>
    49. <br />
    50. <input class="btn btn-default" type="submit" name="send" value="Отправить уведомление" />
    51. </form>
    52. </td></tr>
    53. </tbody></table>
     
    #3 iiieva, 31 янв 2019
    Последнее редактирование: 31 янв 2019
  4. username1

    username1 Новичок

    С нами с:
    23 янв 2019
    Сообщения:
    33
    Симпатии:
    2
    в строке 4 и where и limit придётся убрать
    WHERE id = '$usid' LIMIT 1
    --- Добавлено ---
    так как лимит - это ограничение количества пользователей, которое программа получает из базы данных
     
  5. iiieva

    iiieva Новичок

    С нами с:
    31 янв 2019
    Сообщения:
    6
    Симпатии:
    0
    Все равно пишет только 1 пользователю
     
  6. iiieva

    iiieva Новичок

    С нами с:
    31 янв 2019
    Сообщения:
    6
    Симпатии:
    0
    вот как сделал а все равно отправляет только одному, голова уже вообще не варит с этим скриптом
    Код (Text):
    1. <?
    2. $usid = $_SESSION["user_id"];
    3. $usname = $_SESSION["user"];
    4. $db->Query("SELECT * FROM db_users_b");
    5. $user_data = $db->FetchArray();
    6. ?>
    7. <div class="page-header">
    8.     <h1>Уведомления</h1>
    9. </div>
    10. <table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
    11.    <tr>
    12.     <td align="center" class="list-group-item"><a style='color:black;' href='/?menu=WarStock&sel=notify'>Написать уведомление</a></td>
    13.   </tr>
    14. </table>
    15. <?
    16. if (isset($_POST['to_user'])) {
    17. $to_user = htmlspecialchars($_POST['to_user']);
    18. $theme = htmlspecialchars($_POST['tema']);
    19. $text = htmlspecialchars($_POST['message']);
    20. $status = 0;
    21. $date = time();
    22. // $db->Query("SELECT * FROM db_users_a");
    23. $kol = $db->NumRows();
    24. $us = $db->FetchArray();
    25. $us_in = $us['id'];
    26. $login_in = $us['user'];
    27.             if(!empty($theme)) {
    28.                 if(!empty($text)) {
    29.                         $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)");
    30.                    
    31.                         $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)");
    32.                         echo ("<center>Сообщение отправлено игроку $login_in</center>");
    33.                 }else echo ("Введите текст сообщения</center>");
    34.             }else  echo ("<center>Введите тему сообщения</center>");
    35. }
    36. ?>
    37. <table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td>
    38. <br>
    39. <form method="post" action="">
    40.   <label for="ex1">Ник игрока</label>
    41.   <input name="to_user" value="" type="text" size="20" maxlength="50" class="form-control" id="ex1"/>
    42. <br>
    43.   <label for="ex1">Тема сообщения (до 150 символов)</label>
    44.   <input name="tema" value="" type="text" size="20" maxlength="150" class="form-control" id="ex1"/>
    45. <br>
    46. <label>Текст сообщения</label><br>
    47. <textarea name="message" class="form-control" rows="5" cols="40"></textarea>
    48. <br />
    49. <input class="btn btn-default" type="submit" name="send" value="Отправить уведомление" />
    50. </form>
    51. </td></tr>
    52. </tbody></table>
     
  7. username1

    username1 Новичок

    С нами с:
    23 янв 2019
    Сообщения:
    33
    Симпатии:
    2
    $db->FetchArray в 5 строке может передавать в переменную несколько строк таблицы?
     
  8. iiieva

    iiieva Новичок

    С нами с:
    31 янв 2019
    Сообщения:
    6
    Симпатии:
    0
    лично я с сказал что в этом не шарю, если ты ты тоже не нашищь то вообще свой нахер нос суешь? унизить меня так в в чем ?
     
  9. AlexProg

    AlexProg Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    1) Раскоментировать.
    2) Что бы всем разослать нужно вытащить всех из базы, засунуть в массив и циклом пройтись по циклу.
     
  10. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Уважаемые руководители форума. Добавьте дизлайки. Ибо за совет "циклом пройтись по циклу" нужно бить по башке учебником MySQL и желательно тем у которого не менее полторы тысячи страниц, за каждую итерацию того самого цикла.
     
  11. iiieva

    iiieva Новичок

    С нами с:
    31 янв 2019
    Сообщения:
    6
    Симпатии:
    0
    ты что по советуешь? просто до сих пор не разобрался
     
  12. AlexProg

    AlexProg Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Согласен! Я за!
    Достали неучи которые не могут понят элементарного!
    P.S. Циклом по массиву - знай же!
     
  13. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @iiieva, для того что бы разбираться необходимо желание, что то делать, а не просто желание готового кода. Данная задача при правильной архитектуре бд решается вообще без участия PHP и всего лишь одним запросом.
    --- Добавлено ---
    Вот тут отвечал пять лет назад http://phpforum.su/index.php?showtopic=71212&hl=%F0%E0%F1%F1%FB%EB%EA%E0+%F1%EE%EE%E1%F9%E5%ED