Foros del Web » Programando para Internet » PHP »

Necesito repetir varias veces un insert into...

Estas en el tema de Necesito repetir varias veces un insert into... en el foro de PHP en Foros del Web. Saludos desde Venezuela... Ok amigos tengo una duda y estoy seguro que me pueden ayudar. Necesito hacer cierto mensaje se le envie a varios usuarios ...
  #1 (permalink)  
Antiguo 07/03/2004, 18:53
RDC
 
Fecha de Ingreso: agosto-2003
Mensajes: 50
Antigüedad: 20 años, 7 meses
Puntos: 0
Pregunta Necesito repetir varias veces un insert into...

Saludos desde Venezuela...
Ok amigos tengo una duda y estoy seguro que me pueden ayudar. Necesito hacer cierto mensaje se le envie a varios usuarios que tengo registrado en mi base de datos, todos los campos permaneceran igual, cambiando unicamente el usuario al que va dirigido.
Con este codigo me traigo todos los usuarios a quienes va dirigido el mensaje:

//para conocer a todos los usuarios
$query_enviar_msj = "SELECT * FROM usuarios;
$enviar_msj = mysql_query($query_enviar_msj,$conex_recursos) or die(mysql_error());
$row_enviar_msj = mysql_fetch_assoc($enviar_msj);

//ahora para enviarles con el while
do
{
//Para generar valor del campo id, el cual es el clave
mt_srand((double)microtime()*1000000);
$id=mt_rand(1,30000);
//A quien va el mensaje...
$destinatario=$row_enviar_msj['login'];
//Mensaje enviandose...

$query_agregar_msj = "INSERT INTO servicio_msj (remitente, destinatario, asunto, descripcion, fecha, hora, id, prioridad)
VALUES ('$textnombre', '$destinatario', '$asunto', '$descripcion_reportada', '$fecha', '$hora', '$id', 'a')";
$agregar_msj = mysql_query($query_agregar_msj, $conex_recursos) or die(mysql_error());
} while ($row_enviar_msj = mysql_fetch_assoc($enviar_msj));

se esta enviando solo al primer usuario que aparece en la tabla usuarios. Luego mew genera un error en la "SQL sintaxis" (algo asi dice el mensaje).

Que piensan esta sucediendo...?
  #2 (permalink)  
Antiguo 07/03/2004, 20:03
Avatar de ||Dj||  
Fecha de Ingreso: enero-2002
Mensajes: 2.349
Antigüedad: 22 años, 2 meses
Puntos: 1
No tendras algun caracter conflictivo en alguno de los campos de la fila donde se detiene?
  #3 (permalink)  
Antiguo 07/03/2004, 21:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Si nos pones el SQL que genera el error sería lo ideal .. para eso haz un echo a tu:

$query_agregar_msj y observa la sintax SQL que estás generando ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 07/03/2004, 21:49
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Ese error en la SQL sintax es la información más importante que nos puedes dar...

Saludos
  #5 (permalink)  
Antiguo 09/03/2004, 10:16
RDC
 
Fecha de Ingreso: agosto-2003
Mensajes: 50
Antigüedad: 20 años, 7 meses
Puntos: 0
Ok, hice lo que me pedia cluster y aqui esta el mensaje que se genera:


INSERT INTO servicio_msj (remitente, destinatario, asunto, descripcion, fecha, hora, id, prioridad) VALUES ('jose', 'Administrador', 'falla en w no ha podido ser solucionada', 'Esta como sucio este teclado', '09-03-04', '11:34:52', '13936', 'a')INSERT INTO servicio_msj (remitente, destinatario, asunto, descripcion, fecha, hora, id, prioridad) VALUES ('jose', 'jose', 'falla en w no ha podido ser solucionadaINSERT INTO servicio_msj (remitente, destinatario, asunto, descripcion, fecha, hora, id, prioridad) VALUES ('jose', 'Administrador', 'falla en w no ha podido ser solucionada', 'Esta como sucio este teclado', '09-03-04', '11:34:52', '13936', 'a')', 'Esta como sucio este teclado', '09-03-04', '11:34:52', '13735', 'a')You have an error in your SQL syntax near 'jose', 'Administrador', 'falla en w no ha podido ser solucionada', 'Esta como su' at line 2
  #6 (permalink)  
Antiguo 09/03/2004, 10:22
RDC
 
Fecha de Ingreso: agosto-2003
Mensajes: 50
Antigüedad: 20 años, 7 meses
Puntos: 0
No amigo Dj, verifique lo que me planteabas y no me parece que este ocurriendo eso
  #7 (permalink)  
Antiguo 09/03/2004, 10:47
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 20 años, 11 meses
Puntos: 1
No se, quizas probando con acabar la sentencia en punto y coma;

aunque cuando sale el codigo SQL, no se si lo has copiado mal o que pero aparece roto??

te paso una copia de lo tuyo con salto de linea.

INSERT INTO servicio_msj (remitente, destinatario, asunto, descripcion, fecha, hora, id, prioridad) VALUES ('jose', 'Administrador', 'falla en w no ha podido ser solucionada', 'Esta como sucio este teclado', '09-03-04', '11:34:52', '13936', 'a')
INSERT INTO servicio_msj (remitente, destinatario, asunto, descripcion, fecha, hora, id, prioridad) VALUES ('jose', 'jose', 'falla en w no ha podido ser solucionada

¿¿ que pasa aqui?? es un error al copiar o sale asi la sentencia ??

INSERT INTO servicio_msj (remitente, destinatario, asunto, descripcion, fecha, hora, id, prioridad) VALUES ('jose', 'Administrador', 'falla en w no ha podido ser solucionada', 'Esta como sucio este teclado', '09-03-04', '11:34:52', '13936', 'a')',

'Esta como sucio este teclado', '09-03-04', '11:34:52', '13735', 'a')You have an error in your SQL syntax near 'jose', 'Administrador', 'falla en w no ha podido ser solucionada', 'Esta como su' at line 2

Mira a ver, poneiendo punto y coma, y fijate bien en la salida del codigo SQL ?'

un saludo
  #8 (permalink)  
Antiguo 09/03/2004, 10:51
Avatar de dackiller  
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 20 años, 6 meses
Puntos: 4
Yo haria así

Que tal Paisano !

ummm...

Yo lo haria de la siguiente manera !

1. Busco en la BD todos los usuarios como en efecto tu lo haces en el primer QUERY !

2. Todos los resultados los intrduzco en un array.

3. Con un For insertas los INSERT INTO

Código PHP:
$sql"SELECT NOMBRE FROM USUARIOS";
$user_sql mysql_query($user,$conex);
$f_user mysql_num_rows($user_sql); // Total de Filas


// relleno la Matrix con los resultados del Query($SQL)

for($j 1$j $f_user$j++){
    
$array[$j] = mysql_result($user_sql$j0);
}
//Liberas los resultados de la Memoria
mysql_free_result($user_sql);

// Ahora con el Array lleno con los nombres de los usuarios haces el for hasta el total de filas en el query !


for($x=1;$x $f_user;$x++){
mysql_query(
"INSERT INTO servicio_msj (remitente, destinatario, asunto, descripcion, fecha, hora, id, prioridad)
VALUES ('$textnombre', '$array[$x]', '$asunto', '$descripcion_reportada', '$fecha', '$hora', '$id', 'a')"
;

Espero que te sirva de algo
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.
  #9 (permalink)  
Antiguo 14/03/2004, 17:15
RDC
 
Fecha de Ingreso: agosto-2003
Mensajes: 50
Antigüedad: 20 años, 7 meses
Puntos: 0
No jordi, lo que me preguntas, relacionado con la cadena:

"INSERT INTO servicio_msj (remitente, destinatario, asunto, descripcion, fecha, hora, id, prioridad) VALUES ('jose', 'jose', 'falla en w no ha podido ser solucionada

¿¿ que pasa aqui?? es un error al copiar o sale asi la sentencia ??

No es un error, lo que se menciona alli sobre la falla es parte de lo que la sentencia ha encontrado a traves del select, es decir, eso realmente esta en la base de datos.
Bueno, me dispongo a probar lo que me dicen jordi y dackiller. Luego les cuento.
Saludos.
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:00.