Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/06/2010, 14:33
rufus
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
problema con if y elseif (php)

que el segundo bloque de instrucciones que esta dentro de un elseif no se me ejecuta. pongo el codigo y después lo comento para que me digais que estoy haciendo mal.


Código PHP:
<?php


$precioplantilla
=$_POST['precioplantilla'];
$etiquetado=$_POST['etiquetado'];
$ivafactura=$_POST['ivafactura'];

$colorcamiseta1=$_POST['colorcamiseta1'];
$colortinta1=$_POST['colortinta1'];
$numerocamisetas1=$_POST['numerocamisetas1'];
$precioregistro1=$_POST['precioregistro1'];
$preciototal1=$_POST['preciototal1'];

$colorcamiseta2=$_POST['colorcamiseta2'];
$colortinta2=$_POST['colortinta2'];
$numerocamisetas2=$_POST['numerocamisetas2'];
$precioregistro2=$_POST['precioregistro2'];
$preciototal2=$_POST['preciototal2'];

$colorcamiseta3=$_POST['colorcamiseta3'];
$colortinta3=$_POST['colortinta3'];
$numerocamisetas3=$_POST['numerocamisetas3'];
$precioregistro3=$_POST['precioregistro3'];
$preciototal3=$_POST['preciototal3'];

$colorcamiseta4=$_POST['colorcamiseta4'];
$colortinta4=$_POST['colortinta4'];
$numerocamisetas4=$_POST['numerocamisetas4'];
$precioregistro4=$_POST['precioregistro4'];
$preciototal4=$_POST['preciototal4'];

$colorcamiseta5=$_POST['colorcamiseta5'];
$colortinta5=$_POST['colortinta5'];
$numerocamisetas5=$_POST['numerocamisetas5'];
$precioregistro5=$_POST['precioregistro5'];
$preciototal5=$_POST['preciototal5'];

$totalfactura=$_POST['totalfactura'];
$iva=$_POST['iva'];


$arrayduda2=array ("$colorcamiseta2" =>$_POST['colorcamiseta2'] ,"$colortinta2"=>$_POST['colortinta2'],"$numerocamisetas2"=>$_POST['numerocamisetas2'],"$precioregistro2"=>$_POST['precioregistro2'],"$preciototal2"=>$_POST['preciototal2']);

$arrayduda3=array ("$colorcamiseta3" =>$_POST['colorcamiseta3'] ,"$colortinta3"=>$_POST['colortinta3'],"$numerocamisetas3"=>$_POST['numerocamisetas3'],"$precioregistro3"=>$_POST['precioregistro3'],"$preciototal3"=>$_POST['preciototal3']);

$arrayduda4=array ("$colorcamiseta4" =>$_POST['colorcamiseta4'] ,"$colortinta4"=>$_POST['colortinta4'],"$numerocamisetas4"=>$_POST['numerocamisetas4'],"$precioregistro4"=>$_POST['precioregistro4'],"$preciototal4"=>$_POST['preciototal4']);

if (!empty(
$arrayduda2)){
    
    
    
$ssql "insert into presupuesto(precioplantilla, etiquetado,ivafactura, colorcamiseta1,
            colortinta1,numerocamisetas1,precioregistro1,
            preciototal1,totalfactura, iva) values  (('$precioplantilla'),('$etiquetado'),('$ivafactura'),
            ('$colorcamiseta1'),('$colortinta1'),('$numerocamisetas1'),('$precioregistro1'),('$preciototal1'),
            ('$totalfactura'),('$iva'))"
;
    
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    
mysql_query($ssql$conexion);
}
    
    elseif (!empty(
$arrayduda3)) {
        
        
        
        
$ssql "insert into presupuesto(precioplantilla, etiquetado,ivafactura, colorcamiseta1,
                colortinta1,numerocamisetas1,precioregistro1,
                preciototal1,colorcamiseta2,
                colortinta2,numerocamisetas2,precioregistro2,
                preciototal2,
                totalfactura, iva) values  (('$precioplantilla'),('$etiquetado'),('$ivafactura'),
                ('$colorcamiseta1'),('$colortinta1'),('$numerocamisetas1'),('$precioregistro1'),('$preciototal1'),
                ('$colorcamiseta2'),('$colortinta2'),('$numerocamisetas2'),('$precioregistro2'),('$preciototal2'),
                ('$totalfactura'),('$iva'))"
;
        
        
$conexionmysql_connect("localhost""root""");
        
        
mysql_select_db("abcerotica"$conexion);
        
        if (
mysql_query($ssql$conexion)){
            echo 
"sentencia ingresada!";
        }else{
            echo 
"no inserte nada!" ;
        }

    }
        
        
        
        
        
        
            
else {
    echo 
"no se inserta nada";
}

?>

tengo un manual de php que dice lo siguiente: para que se evalue un elseif el if de delante tiene que ser evaluado como false.

ahora en el primer "if" tengo un condicional (!empty($arrayduda2)) { bloque de instrucciones}

esta funcion empty devuelve false si la variable (en este caso una array) no esta vacia, es decir devuelve false si la variable contiene algo.

entonces si el primer if que tiene (!empty($....) que tiene el simbolo "!" con lo que si el array contiene informacion el if devuelve true en caso de estar el array vacio se ejecuta el mimo "if".

me equivoco en lo que estoy diciendo????.

entonces si el primer array no esta vacio, contiene su informacion con lo que deberia de devolver false (empty=false si la variable contiene informacion).

por que no se me ejecuta el primer elseif???????.

o es un fallo de otro tipo????