Buenas gente, aca de nuevo recurriendo a uds.
El tema es el siguiente.....tengo este codigo que valido campos al insertar un csv en mysql
Código PHP:
$error = 0;
$file = fopen($destino, "r");
while ($datos = fgetcsv ($file, 1000, ","))
{
$num = count($datos);
$apellido = $datos[0];
$nombre = $datos[1];
$cuil = $datos[2];
$basico = $datos[3];
$bruto = $datos[4];
$afili = $datos[5];
if(!(preg_match("/^([a-z ñáéíóú ÑÁÉÍÓÚ]{2,50})$/i",$apellido))){
$error = 1;
}
elseif(!(preg_match("/^([a-z ñáéíóú ÑÁÉÍÓÚ]{2,50})$/i",$nombre))){
$error = 2;
}
elseif(! cuitValido($cuil)){
$error = 3;
}
elseif(!is_numeric($basico)){
$error = 4;
}
elseif(!is_numeric($bruto)){
$error = 5;
}
elseif(trim((string)$afili) !== "0" && trim((string)$afili) !== "1"){
$error = 6;
}
if(($error == 0) || ($error > 6))
{
if(!mysql_num_rows(mysql_query("SELECT cuil FROM ddjj WHERE cuil='$cuil'")))
{
mysql_query("INSERT INTO ddjj
VALUES ('null','$apellido','$nombre','$cuil','$basico','$bruto','$afili')");
}else
{
mysql_query("UPDATE ddjj
SET apellido='$apellido', nombre='$nombre', cuil='$cuil', basico='$basico', bruto='$bruto', afiliado='$afili' WHERE cuil='$cuil'");
}
}
}
Si algun dato no esta en el csv lo inserta y si esta lo actualiza, pero el problema lo tengo cuando hay algun error, suponiendo que una linea esta bien y la otra mal me tira el mensaje de error notificandome del error pero la otra linea la actualiza.
Yo quiero lograr que si hay algun error no haga nada, unicamente que si el csv esta bien actualice o inserte.
Esta linea tengo que modificar creo pero nose como decirle que si hay algun error no haga nada.
Código PHP:
if(($error == 0) || ($error > 6))
Espero me haya explicado bien.
Gracias