Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/06/2009, 17:21
ruizdeeguilaz
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 11 meses
Puntos: 8
Respuesta: Error al insertar dato mysql

Cita:
Iniciado por ricardomz Ver Mensaje
Código PHP:
for ($n=0;$n<3;$n++) {
    if (!
$insertNames[$n] || !$insertUsers[$n] || !$insertPasswords[$n])
      continue;
        
         
$insertSQL sprintf("INSERT INTO ...);
         $Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error()); 


Hola ricardomz,

Creo que el problema está en el continue. Lo que tienes puesto es equivalente a lo siguiente:

Código PHP:
for ($n=0;$n<3;$n++) {
    if (!
$insertNames[$n] || !$insertUsers[$n] || !$insertPasswords[$n])
    {
      continue;
    }
     
$insertSQL sprintf("INSERT INTO ...);
     $Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error()); 

Así, el if no tiene ningún efecto, ya que el continue no hace referencia al for, sino al if y, en cualquier caso, continua ejecutando el insert.

Para solucionarlo, no uses el continue; simplemente cambia la condición del if para que si se cumple, haga el insert:

Código PHP:
for ($n=0;$n<3;$n++) {
    if (!(!
$insertNames[$n] || !$insertUsers[$n] || !$insertPasswords[$n]))
    {
         
$insertSQL sprintf("INSERT INTO ...);
         $Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error()); 
    }

En general, te recomiendo evitar el uso de continue y break en bucles o en if's, ya que complican el seguimiento del código y fácilmente dan problemas de ejecución si no se tiene cuidado.

Salu2,
Carlos.