Foros del Web » Programando para Internet » PHP »

como puedo hacer esto.....

Estas en el tema de como puedo hacer esto..... en el foro de PHP en Foros del Web. tengo una tabla de usuarios que como clave primaria es el id, autoincrementable, luego tengo otra tabla que se llama "mensajes privados" cuyps campos son ...
  #1 (permalink)  
Antiguo 10/11/2008, 16:01
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
como puedo hacer esto.....

tengo una tabla de usuarios que como clave primaria es el id, autoincrementable,

luego tengo otra tabla que se llama "mensajes privados" cuyps campos son id id_usuario y mensaje

en esa tabla se va a insertar un mensaje que será visualizado por todos los usuarios.Algo asi como mensaje para todos los usuarios.

la cosa esuqe no se como hacerlo, recorro la tabla usuarios, saco todos los ids

los inserto en la tabla "mensajes privados" pero claro me sale el mensaje siempre en el primer id, y no en todos los demás usuarios y no se como hacerlo para que ese mensaje que es el mismo los tenga todos los ids,


Posteriormente cada usuario borra el mensaje si lo desea, pero eso si lo se hacer.

Saludos!
  #2 (permalink)  
Antiguo 10/11/2008, 16:16
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: como puedo hacer esto.....

Umm, sólo tienes que recorrer la tabla de usuario insertando en la tabla mensajes privados....

query que saque todos los usuarios....
while que recorre esa query
dentro del while un insert a la tabla de mensajes, con un id autoincremental, el id_usuario de la query anterior (la que estamos recorriendo) y el mensaje que quieres insertar...
  #3 (permalink)  
Antiguo 10/11/2008, 16:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: como puedo hacer esto.....

Hola nfo,

Solo tienes que recorrer tu arreglo una vez que tienes el arreglo con los ids, algo asi:
Código php:
Ver original
  1. foreach($aUsuarios as $usuario) {
  2.         $query = "INSERT INTO usuarios VALUES (mensaje, $usuario)
  3. }

Saludos.
  #4 (permalink)  
Antiguo 10/11/2008, 16:23
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: como puedo hacer esto.....

con un foreach y que vaya ejecutando consultas hasta que se quedi sin ids


GRacias
  #5 (permalink)  
Antiguo 10/11/2008, 16:33
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: como puedo hacer esto.....

Es una opción, pero me parece un poco redundante hace un bucle para meter los datos en el array, y luego otro para el insert, pudiéndose hacer en un sólo bucle...
  #6 (permalink)  
Antiguo 10/11/2008, 16:49
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: como puedo hacer esto.....

Cita:
Iniciado por Keysher Ver Mensaje
Es una opción, pero me parece un poco redundante hace un bucle para meter los datos en el array, y luego otro para el insert, pudiéndose hacer en un sólo bucle...
me puedes poner un ejemplo?
  #7 (permalink)  
Antiguo 10/11/2008, 16:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: como puedo hacer esto.....

Haces un select y luego el insert:
Código php:
Ver original
  1. $query = "SELECT idusuario FROM usuarios";
  2. $result = mysql_query($query);
  3. while($row = mysql_fetch_array($result) {
  4.        $insert = "INSERT into... values(bla)";
  5.        mysql_query($insert);
  6. }

Saludos.
  #8 (permalink)  
Antiguo 10/11/2008, 16:57
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: como puedo hacer esto.....

Algo rápido:

Código php:
Ver original
  1. $result = mysql_query('SELECT UserID FROM Users');
  2. $message = 'El mensaje a insertar';
  3.  
  4. while ($row = mysql_fetch_array($result)) {
  5.     $id = $row[0];
  6.     $insert = mysql_query("INSERT INTO PrivateMessages VALUES ('$id', '$message')");
  7.     // Aquí podríamos comprobar si el Insert se ha realizado correctamente...
  8. }
  #9 (permalink)  
Antiguo 10/11/2008, 17:15
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: como puedo hacer esto.....

ajammmm muchas gracias a los dos ... por lo menos no habra tanta redundancia gracias.
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 05:07.