Foros del Web » Programando para Internet » PHP »

Envio de mensaje a varios user

Estas en el tema de Envio de mensaje a varios user en el foro de PHP en Foros del Web. hola como estan. tengo un sistema de envio de mensajes privados entre users de mi web, es una tarea que estoy desarrollando. donde yo tengo ...
  #1 (permalink)  
Antiguo 22/11/2014, 16:08
Avatar de randy05  
Fecha de Ingreso: agosto-2012
Mensajes: 37
Antigüedad: 11 años, 7 meses
Puntos: 1
Envio de mensaje a varios user

hola como estan.

tengo un sistema de envio de mensajes privados entre users de mi web, es una tarea que estoy desarrollando.

donde yo tengo una lista con todos los users al hacer clic en el nombre de un user esto me manda a la pagina de mensaje, ala cual yo le paso por url el id de ese user y redacto en mensaje y se lo envio.

hasta qui todo bien.

haora he puesto un checkbox para poder selecionar varios user ala vez, le doy a enviar y me mandan la pagina de mensaje enviado los id de todos los user selecionados

Ejemplo: mensaje?user=1&user=2&user=3&user=4

he qui mi duda

para enviarle el mensaje a un user utilizo este codigo.

Código PHP:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "Post")) {//si post

INSERT INTO msn (user id que enviauser id que recibeasuntomensajefechaVALUES (todos los valores) or die(mysql_error()); 
en el user id que recibe haqui inserto el id recibido por la url

Pero como hago para que depende de que cantidad de usuarios elijos se inserten en la BD
  #2 (permalink)  
Antiguo 22/11/2014, 17:10
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Envio de mensaje a varios user

Tus checkbox deben de estar organizados a manera de array, algo así:

Código HTML:
Ver original
  1. <input type = "checkbox" name = "user[]" value = "1" />
  2. <input type = "checkbox" name = "user[]" value = "2" />
  3. <input type = "checkbox" name = "user[]" value = "3" />

En donde los valores serán los id de cada usuario, luego, en el archivo PHP, puedes hacer dos cosas; ya que $_POST['user'] es un array, lo iteras con ayuda de un bucle y, en cada iteración, realizas la inserción por cada id recibido, o, mejor aún, formas tu cadena de valores a insertar dentro del bucle y, al final de este, ejecutas una sola consulta SQL, añadiendo todos los valores a la vez.

Código PHP:
Ver original
  1. $aux = array();
  2. foreach ($_POST['user'] as $id_destino){
  3.     $aux[] = "($id_remite, $id_destino, '$asunto', '$mensaje', '$fecha')";
  4. }
  5. $valores = implode(', ', $aux);

Ahora, en lugar de 'todos los valores' (como lo pones en tu descripción), debe de ir $valores. La función implode, une a todos los elementos del array $aux con comas y espacios.

La intención de hacerlo así es porque, para insertar varios valores a la vez, puedes utilizar esta sintaxis:
Código MySQL:
Ver original
  1. INSERT INTO tabla (campo1, campo2, campo3) VALUES (valor1, valor2, valor3), (valor4, valor5, valor6)

En donde cada conjunto de datos agrupados entre paréntesis, se insertará en la tabla en un registro distinto al del otro.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: fecha, mensaje, sql, usuarios
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 18:57.