title: Sending Push Notification on multiple devices
body: <p>I'm trying to make an push notification on my android app by following this tutorial</p>
  
  <p><a href="http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/" rel="nofollow">http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/</a></p>
  
  <p>I already got this tutorial working, but my problem is. It only send notification one by one. I need to send the notification to all gcm_id or registered id by just sending once.</p>
  
  <p>Do anyone already solved this issue?</p>
  
  <p>here is my index.php</p>
  
  <pre><code>&lt;!--
  To change this template, choose Tools | Templates
  and open the template in the editor.
  --&gt;
  &lt;!DOCTYPE html&gt;
  &lt;html&gt;
      &lt;head&gt;
          &lt;title&gt;&lt;/title&gt;
          &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
          &lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"&gt;&lt;/script&gt;
          &lt;script type="text/javascript"&gt;
              $(document).ready(function(){
  
              });
              function sendPushNotification(id){
                  var data = $('form#'+id).serialize();
                  $('form#'+id).unbind('submit');                
                  $.ajax({
                      url: "send_message.php",
                      type: 'GET',
                      data: data,
                      beforeSend: function() {
  
                      },
                      success: function(data, textStatus, xhr) {
                            $('.txt_message').val("");
                      },
                      error: function(xhr, textStatus, errorThrown) {
  
                      }
                  });
                  return false;
              }
          &lt;/script&gt;
          &lt;style type="text/css"&gt;
              .container{
                  width: 950px;
                  margin: 0 auto;
                  padding: 0;
              }
              h1{
                  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
                  font-size: 24px;
                  color: #777;
              }
              div.clear{
                  clear: both;
              }
              ul.devices{
                  margin: 0;
                  padding: 0;
              }
              ul.devices li{
                  float: left;
                  list-style: none;
                  border: 1px solid #dedede;
                  padding: 10px;
                  margin: 0 15px 25px 0;
                  border-radius: 3px;
                  -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.35);
                  -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.35);
                  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.35);
                  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
                  color: #555;
              }
              ul.devices li label, ul.devices li span{
                  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
                  font-size: 12px;
                  font-style: normal;
                  font-variant: normal;
                  font-weight: bold;
                  color: #393939;
                  display: block;
                  float: left;
              }
              ul.devices li label{
                  height: 25px;
                  width: 50px;                
              }
              ul.devices li textarea{
                  float: left;
                  resize: none;
              }
              ul.devices li .send_btn{
                  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#0096FF), to(#005DFF));
                  background: -webkit-linear-gradient(0% 0%, 0% 100%, from(#0096FF), to(#005DFF));
                  background: -moz-linear-gradient(center top, #0096FF, #005DFF);
                  background: linear-gradient(#0096FF, #005DFF);
                  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.3);
                  border-radius: 3px;
                  color: #fff;
              }
          &lt;/style&gt;
      &lt;/head&gt;
      &lt;body&gt;
          &lt;?php
          include_once 'db_functions.php';
          $db = new DB_Functions();
          $users = $db-&gt;getAllUsers();
          if ($users != false)
              $no_of_users = mysql_num_rows($users);
          else
              $no_of_users = 0;
          ?&gt;
          &lt;div class="container"&gt;
              &lt;h1&gt;No of Devices Registered: &lt;?php echo $no_of_users; ?&gt;&lt;/h1&gt;
              &lt;hr/&gt;
              &lt;ul class="devices"&gt;
                  &lt;?php
                  if ($no_of_users &gt; 0) {
                      ?&gt;
                      &lt;?php
                      while ($row = mysql_fetch_array($users)) {
                          ?&gt;
                          &lt;li&gt;
                              &lt;form id="&lt;?php echo $row["id"] ?&gt;" name="" method="post" onsubmit="return sendPushNotification('&lt;?php echo $row["id"] ?&gt;')"&gt;
                                  &lt;label&gt;Name: &lt;/label&gt; &lt;span&gt;&lt;?php echo $row["name"] ?&gt;&lt;/span&gt;
                                  &lt;div class="clear"&gt;&lt;/div&gt;
                                  &lt;label&gt;Email:&lt;/label&gt; &lt;span&gt;&lt;?php echo $row["email"] ?&gt;&lt;/span&gt;
                                  &lt;div class="clear"&gt;&lt;/div&gt;
                                  &lt;div class="send_container"&gt;                                
                                      &lt;textarea rows="3" name="message" cols="25" class="txt_message" placeholder="Type message here"&gt;&lt;/textarea&gt;
                                      &lt;input type="hidden" name="regId" value="&lt;?php echo $row["gcm_regid"] ?&gt;"/&gt;
                                      &lt;input type="submit" class="send_btn" value="Send" onclick=""/&gt;
                                  &lt;/div&gt;
                              &lt;/form&gt;
                          &lt;/li&gt;
                      &lt;?php }
                  } else { ?&gt; 
                      &lt;li&gt;
                          No Users Registered Yet!
                      &lt;/li&gt;
                  &lt;?php } ?&gt;
              &lt;/ul&gt;
          &lt;/div&gt;
      &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>send_message.php</p>
  
  <pre><code>&lt;?php
  
  /*
   * To change this template, choose Tools | Templates
   * and open the template in the editor.
   */
  if (isset($_GET["regId"]) &amp;&amp; isset($_GET["message"])) {
      $regId = $_GET["regId"];
      $message = $_GET["message"];
  
      include_once './GCM.php';
  
      $gcm = new GCM();
  
      $registatoin_ids = array($regId);
      $message = array("price" =&gt; $message);
  
      $result = $gcm-&gt;send_notification($registatoin_ids, $message);
  
      echo $result;
  }
  ?&gt;
  </code></pre>
  
  <p>GCM.php</p>
  
  <pre><code>&lt;?php
  
  /*
   * To change this template, choose Tools | Templates
   * and open the template in the editor.
   */
  
  /**
   * Description of GCM
   *
   * @author Ravi Tamada
   */
  class GCM {
  
      //put your code here
      // constructor
      function __construct() {
  
      }
  
      /**
       * Sending Push Notification
       */
      public function send_notification($registatoin_ids, $message) {
          // include config
          include_once './config.php';
  
          // Set POST variables
          $url = 'https://android.googleapis.com/gcm/send';
  
          $fields = array(
              'registration_ids' =&gt; $registatoin_ids,
              'data' =&gt; $message,
          );
  
          $headers = array(
              'Authorization: key=' . GOOGLE_API_KEY,
              'Content-Type: application/json'
          );
          // Open connection
          $ch = curl_init();
  
          // Set the url, number of POST vars, POST data
          curl_setopt($ch, CURLOPT_URL, $url);
  
          curl_setopt($ch, CURLOPT_POST, true);
          curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  
          // Disabling SSL Certificate support temporarly
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  
          curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
  
          // Execute post
          $result = curl_exec($ch);
          if ($result === FALSE) {
              die('Curl failed: ' . curl_error($ch));
          }
  
          // Close connection
          curl_close($ch);
          echo $result;
      }
  
  }
  
  ?&gt;
  </code></pre>