Cita:
Iniciado por peketin ACA COMPRUEBO
Código PHP:
if(isset($_POST['carac'])){
foreach($_POST['carac'] as $value){
if ($value==true){
if ($value==5){ echo'aca entro por nacional verdadero';}
$ok=true;
$yata=true;
$existente=mysql_query('Select idCaracteristica from Vehiculos_Caracteristicas where Vehiculos_Caracteristicas.idVehiculo='.$idveh.'');
while(($existe=mysql_fetch_row($existente)) and ($yata)){
if ($value==$existe[0]){
$yata=false;
$ok=true;
}
else{
$ok=false;
}
}
if (!($ok)){
@mysql_query("Insert Into Vehiculos_Caracteristicas (`idVehiculoCaractesristica`,`idVehiculo`,`idCaracteristica`) values (null,'".$idveh."','".$value."')");
}
}
else{
$existente=mysql_query('Select idCaracteristica from Vehiculos_Caracteristicas where Vehiculos_Caracteristicas.idVehiculo='.$idveh.'');
while($existe=mysql_fetch_row($existente)){
if ($value==$existe[0]){
@mysql_query('DELETE from Vehiculos_Caracteristicas where idVehiculo='.$idveh.' and idCaracteristica='.$value.'');
}
}
}
}
}
Yo creo que tienes errores en la colocación de las llaves. Si están bien colocadas, dudo que el script funcione como quieres. Para empezar:
if ($value==true){
Esto se va a cumplir siempre porque el array $_POST['carac'] tiene valores ya que lo indicas aquí:
if(isset($_POST['carac'])){
por tanto en el else no va a entrar nunca. Siempre entrará en el if. El else correspondiente a ese if, según las llaves que tienes puestas, sería este:
Código PHP:
else{
$existente=mysql_query('Select idCaracteristica from Vehiculos_Caracteristicas where Vehiculos_Caracteristicas.idVehiculo='.$idveh.'');
while($existe=mysql_fetch_row($existente)){
if ($value==$existe[0]){
@mysql_query('DELETE from Vehiculos_Caracteristicas where idVehiculo='.$idveh.' and idCaracteristica='.$value.'');
}
}
}
A este else, como digo no entraría nunca, según entiendo yo el script.
Comprueba que las llaves las tengas bien puestas, antes de nada.
Ten en cuenta que aquí abres y cierras llave:
if ($value==5){ echo'aca entro por nacional verdadero';}