Foros del Web » Programando para Internet » PHP »

Las consultas SQL se ejecutan varias veces

Estas en el tema de Las consultas SQL se ejecutan varias veces en el foro de PHP en Foros del Web. Hola, estoy haciendo una pequeña página en PHP, en la que recojo una serie de variables, las meto en un insert y luego ejecuto la ...
  #1 (permalink)  
Antiguo 08/06/2009, 04:08
 
Fecha de Ingreso: abril-2008
Mensajes: 43
Antigüedad: 16 años
Puntos: 3
Las consultas SQL se ejecutan varias veces

Hola, estoy haciendo una pequeña página en PHP, en la que recojo una serie de variables, las meto en un insert y luego ejecuto la consulta SQL, algo así:

Código PHP:
$sql "INSERT INTO tabla (nombre,telefono,dni,poblacion) VALUES ('$nombre','$telefono,'$dni','$poblacion');";
mysql_query($sql) or die ("Se ha producido el siguiente error: ".mysql_error()); 
Bien, todo funciona perfectamente, recojo el valor de las variables antes, las meto en la consulta SQL y se ejecuta bien...
El problema es que al realizar esta consulta desde mi navegador, me ejecutaba la consulta 3 o 4 veces, o sea, yo iba a la página que ejecutaba (en teoría 1 sola vez) la consulta, pero luego los datos estaban repetidos 3 o 4 veces...

Resulta que es por que tengo configurado el firefox para que ejecute varias conexiones a la vez para acelerar la velocidad de navegación... Lo desactivo y punto, pero habrá mucha otra gente que lo tendrá activado...

¿Como puedo hacer para que no se ejecute 3 o 4 veces la misma consulta del tirón? Me comentaron que usando sesiones, pero no se como una sesión podría ayudarme en este aspecto.

Saludos y muchas gracias.
  #2 (permalink)  
Antiguo 08/06/2009, 06:46
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Las consultas SQL se ejecutan varias veces

Tienes que verificar primero si el elemento que deseas insertar, existe en la tabla
de ser haci pues ignorarlo de lo contrario insertarlo.
  #3 (permalink)  
Antiguo 08/06/2009, 06:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Las consultas SQL se ejecutan varias veces

verificas primero haciendo un select y luego un if que verifique si se habia guardado la misma información anteriormente.
Código PHP:
$sql_s "SELECT nombre FROM tabla WHERE nombre = '$nombre' AND telefono = '$telefono' AND dni = '$dni' AND poblacion = '$poblacion'";
$r mysql_query($sql_s) or die(mysql_error());
$num_rows mysql_num_rows($r);
if(
$num_rows == 0){
  
$sql "INSERT INTO tabla (nombre,telefono,dni,poblacion) VALUES ('$nombre','$telefono,'$dni','$poblacion');"
  
mysql_query($sql) or die ("Se ha producido el siguiente error: ".mysql_error());  
}else{
  
//Este es opcional si quieres enviar un mensaje o redireccionarlo inmeditamente.

me dejas saber
  #4 (permalink)  
Antiguo 08/06/2009, 07:55
 
Fecha de Ingreso: abril-2008
Mensajes: 43
Antigüedad: 16 años
Puntos: 3
Respuesta: Las consultas SQL se ejecutan varias veces

La cosa es que ninguno de los campos que inserto debe ser único, quiero decir, todos ellos deberían poder repetirse, excepto el campo ID que no lo introduzco, si no que es un auto incrementado y es la clave primaria de la tabla.

Por ahora he puesto el campo nombre como campo único y he hecho lo que me habéis dicho. A ver si descubro por que me pasa esto que se introduzca varias veces la misma consulta.

Saludos y gracias
  #5 (permalink)  
Antiguo 08/06/2009, 08:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Las consultas SQL se ejecutan varias veces

Ese tipo de herramientas que "aceleran" la conexión generalmente envian un header que identifica que el request es con esa herramienta y en base a eso puedes negar el insert.

Revisa la documentación de tu plugin.

Saludos.
  #6 (permalink)  
Antiguo 08/06/2009, 10:25
 
Fecha de Ingreso: abril-2008
Mensajes: 43
Antigüedad: 16 años
Puntos: 3
Respuesta: Las consultas SQL se ejecutan varias veces

Creo que no era el complemento del Firefox, creo que tiene algo que ver con la beta de la versión 3.5, he iniciado el firefox estable, que tiene la misma configuración y los mismos complementos y ha funcionado perfectamente, en el resto de ordenadores que tengo, también funciona bien, opera, chrome, firefox e IE...

Que cosas, pues ya está solucionado, muchas gracias a todos
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 20:37.