Foros del Web » Programando para Internet » PHP »

Enviar a multiples usuarios a la vez

Estas en el tema de Enviar a multiples usuarios a la vez en el foro de PHP en Foros del Web. Buenas, este es mi codigo para enviar un mensaje a un usuario (el codigo no lo hice yo): <?php //Your firebase url const DEFAULT_URL = ...
  #1 (permalink)  
Antiguo 24/05/2016, 09:43
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años, 7 meses
Puntos: 0
Enviar a multiples usuarios a la vez

Buenas, este es mi codigo para enviar un mensaje a un usuario (el codigo no lo hice yo):

<?php

//Your firebase url
const DEFAULT_URL = 'https://.....com/';

//Checking post request
if($_SERVER['REQUEST_METHOD']=='POST'){

//Connection to database
$con = mysqli_connect('localhost','...','','...');

//Importing firebase libraries
require_once 'firebaseInterface.php';
require_once 'firebaseLib.php';
require_once 'firebaseStub.php';

//Geting email and message from the request

$msg = $_POST['message'];

//Getting the firebase id of the person selected to send notification
$sql = "SELECT * FROM register WHERE email = '$email'";

//Getting the result from database
$res = mysqli_fetch_array(mysqli_query($con,$sql));

//getting the unique id from the result
$uniqueid = $res['firebaseid'];

//creating a firebase variable
$firebase = new \Firebase\FirebaseLib(DEFAULT_URL,'');

//changing the msg of the selected person on firebase with the message we want to send
$firebase->set($uniqueid.'/msg', $msg);

//redirecting back to the sendnotification page
header('Location: sendPushNotification.php?success');


}else{
header('Location: sendPushNotification.php');
}

Si cambio esto:
$sql = "SELECT * FROM register WHERE email = '$email'";

por:

$sql = "SELECT * FROM register;

ya tendria todos los usuarios, pero como hago para que lo haga con todos?...osea que lea el id especifico para cada correo y entonces lo mande...supongo que con un bucle pero...

De php ando muy corto....Gracias...
  #2 (permalink)  
Antiguo 24/05/2016, 09:48
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 10 meses
Puntos: 39
Respuesta: Enviar a multiples usuarios a la vez

Código PHP:
Ver original
  1. $query = mysqli_query($con,$sql);
  2.  
  3. while($res = mysqli_fetch_array($query) {
  4.    // acá tu código firebase, usando $res como variable contenedora de los datos.
  5. }
  #3 (permalink)  
Antiguo 24/05/2016, 10:20
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Enviar a multiples usuarios a la vez

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Código PHP:
Ver original
  1. $query = mysqli_query($con,$sql);
  2.  
  3. while($res = mysqli_fetch_array($query) {
  4.    // acá tu código firebase, usando $res como variable contenedora de los datos.
  5. }
algo asi?:

Cita:
//Checking post request
if($_SERVER['REQUEST_METHOD']=='POST'){

//Connection to database
$con = mysqli_connect('localhost','root','','pushnotifica tion');

//Importing firebase libraries
require_once 'firebaseInterface.php';
require_once 'firebaseLib.php';
require_once 'firebaseStub.php';

//Geting email and message from the request

$msg = $_POST['message'];

//Getting the firebase id of the person selected to send notification
$sql = "SELECT * FROM register";

$query = mysqli_query($con,$sql);

while($res = mysqli_fetch_array($query) {

$uniqueid = $res['firebaseid'];

//creating a firebase variable
$firebase = new \Firebase\FirebaseLib(DEFAULT_URL,'');

//changing the msg of the selected person on firebase with the message we want to send
$firebase->set($uniqueid.'/msg', $msg);

}



//redirecting back to the sendnotification page
header('Location: sendPushNotification.php?success');
}else{
header('Location: sendPushNotification.php');
}

PROBE otra cosa:

//Importing firebase libraries
require_once 'firebaseInterface.php';
require_once 'firebaseLib.php';
require_once 'firebaseStub.php';

//Geting email and message from the request

$msg = $_POST['message'];

$result = mysql_query("SELECT COUNT(*) FROM register;");

$contador = 1;

for ($x = 0; $x <= '$result'; $x++) {

$sql = "SELECT * FROM register LIMIT 0,1;"

//Getting the result from database
$res = mysqli_fetch_array(mysqli_query($con,$sql));

//getting the unique id from the result
$uniqueid = $res['firebaseid'];

//creating a firebase variable
$firebase = new \Firebase\FirebaseLib(DEFAULT_URL,'');

//changing the msg of the selected person on firebase with the message we want to send
$firebase->set($uniqueid.'/msg', $msg);

}


//redirecting back to the sendnotification page
header('Location: sendPushNotification.php?success');
}else{
header('Location: sendPushNotification.php');
}

podria añadirle al 0,1 +1 cada vez que va recorriendo el for?...osea 0+1,1+1...?

Última edición por MrEnfurecido; 24/05/2016 a las 11:23
  #4 (permalink)  
Antiguo 24/05/2016, 13:19
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 10 meses
Puntos: 39
Respuesta: Enviar a multiples usuarios a la vez

En el while, haces una única consulta para traerte todos los registros, y en base a ello mandarles la información.

En el for, lo que haces es una consulta para devolverte la cantidad de filas, y luego una consulta por cada usuario.

Las dos son correctas en teoría, pero dime tú, ¿cuál crees que sea la más óptima?
Saludos :D
  #5 (permalink)  
Antiguo 24/05/2016, 13:41
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Enviar a multiples usuarios a la vez

Cita:
Iniciado por rodocoyote15 Ver Mensaje
En el while, haces una única consulta para traerte todos los registros, y en base a ello mandarles la información.

En el for, lo que haces es una consulta para devolverte la cantidad de filas, y luego una consulta por cada usuario.

Las dos son correctas en teoría, pero dime tú, ¿cuál crees que sea la más óptima?
Saludos :D
Entiendo que con el while es mas limpio si...entonces lo pruebo asi:

Código PHP:
Ver original
  1. //Geting email and message from the request
  2.  
  3. $msg = $_POST['message'];
  4.  
  5. //Getting the firebase id of the person selected to send notification
  6. $sql = "SELECT * FROM register";
  7.  
  8. $query = mysqli_query($con,$sql);
  9.  
  10. while($res = mysqli_fetch_array($query)) {
  11.  
  12. $uniqueid = $res['firebaseid'];
  13.  
  14. //creating a firebase variable
  15. $firebase = new \Firebase\FirebaseLib(DEFAULT_URL,'');
  16.  
  17. //changing the msg of the selected person on firebase with the message we want to send
  18. $firebase->set($uniqueid.'/msg', $msg);
  19.  
  20. }

Aunque no se si me falta algún paréntesis o corchete jaja, mañana pruebo bien...

Por si acaso, probare esto también....

Código PHP:
Ver original
  1. //Geting email and message from the request
  2.  
  3. $msg = $_POST['message'];
  4.  
  5. $result = mysql_query("SELECT COUNT(*) FROM register;");
  6.  
  7. $contador1 = 1;
  8. $contador2 = 1;
  9.  
  10. for ($x = 0; $x <= '$result'; $x++) {
  11.  
  12. $sql = "SELECT * FROM register LIMIT 0,1;"
  13.  
  14. //Getting the result from database
  15. $res = mysqli_fetch_array(mysqli_query($con,$sql));
  16.  
  17. //getting the unique id from the result
  18. $uniqueid = $res['firebaseid'];
  19.  
  20. //creating a firebase variable
  21. $firebase = new \Firebase\FirebaseLib(DEFAULT_URL,'');
  22.  
  23. //changing the msg of the selected person on firebase with the message we want to send
  24. $firebase->set($uniqueid.'/msg', $msg);
  25.  
  26. $contador1= $contador+1;
  27. $contador2 = $contador+1;  
  28.  
  29. }
  #6 (permalink)  
Antiguo 24/05/2016, 15:13
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 10 meses
Puntos: 39
Respuesta: Enviar a multiples usuarios a la vez

Entonces aún no te funciona? En el anterior mensaje daba por hecho que te funcionó, y lo intentaste hacer de la otra forma jaja.

Si nos dices qué error te manda PHP será más fácil ayudarte a buscar el error, saludos.
  #7 (permalink)  
Antiguo 25/05/2016, 01:34
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Enviar a multiples usuarios a la vez

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Entonces aún no te funciona? En el anterior mensaje daba por hecho que te funcionó, y lo intentaste hacer de la otra forma jaja.

Si nos dices qué error te manda PHP será más fácil ayudarte a buscar el error, saludos.
Sii si me funciona, gracias!

Etiquetas: multiples, mysql, select, sql, usuarios, variable, vez
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:27.