Foros del Web » Programando para Internet » PHP »

Problema con condicional IF

Estas en el tema de Problema con condicional IF en el foro de PHP en Foros del Web. Saludos de nuevo Tengo un problema con un calculo y es el siguiente Código PHP: //Saco los datos de precios $pesok  =  $Pesoc  *  0.454 ;  //peso de libras a kilos $resprecios  =  ...
  #1 (permalink)  
Antiguo 19/10/2006, 12:56
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Exclamación Problema con condicional IF

Saludos de nuevo

Tengo un problema con un calculo y es el siguiente

Código PHP:
//Saco los datos de precios
$pesok $Pesoc 0.454//peso de libras a kilos
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= '".$pesok."' and peso_final = '".$pesok."' ") or die ("error:\n".mysql_error());
while (
$rowprecio mysql_fetch_array($respreciosMYSQL_ASSOC)){
$peso_inicio $rowprecio["peso_inicial"];
$peso_final  $rowprecio["peso_final"];
$preciocom =  $rowprecio["preciocom"];
$preciomediog =  $rowprecio["preciomediog"];
$preciovar =  $rowprecio["precio_variacion"];

  }

//Inicio de calculo del flete del ITEM ESTATICO
$pesomgnf $pesok 0.500;
$pesomgnf2 round($pesomgnf); //este es el valo que uso para hacer mis calculos
if (($pesomgnf2 >= '1' ) and ($pesomgnf2 <= '9')){
    
$calculo $preciomediog + ($pesomgnf2 1) * $preciovar;
echo 
"Costo de flete1 $calculo";    
    }else{
    if ((
$pesomgnf2 >= '10' ) and ($pesomgnf2 <= '19')){
        
$calculo $preciocom + ($pesomgnf2 10) * $preciovar
echo 
"Costo de flete2 $calculo";
        }else{
        if ((
$pesomgnf2 >= '20' ) and ($pesomgnf2 <= '39')){
            
$peso_mediosg $pesomgnf2 1;
            
$precio1 $peso_mediosg $preciovar;
            
$calculo $preciocom precio1;

echo 
"Costo de flete3 $calculo";
            }else{
            if ((
$pesomgnf2 >= '40' ) and ($pesomgnf2 <= '100')){
                
$calculo $preciocom + ($pesomgnf2 40) * $preciovar;
echo 
"Costo de flete4 $calculo";
                }else{                
                if ((
$pesomgnf2 '100' )){
                    
$calculo $preciocom + ($pesomgnf2 100) * $preciovar;
                echo 
"Costo de flete5 $calculo";
                 }
            }
        }
    }
}

$vCosto $itemcantidad $itemcosto;
$vSeguro $vCosto 0.01//Precio de Seguro del precio fob total
$venvt $vCosto vSeguro $calculo;
//Insert   DEL PRIMERO
echo "Costo FOB $pesomgnf"
echo 
"<br>";
echo 
"Costo Seguro $vSeguro";
echo 
"<br>";
echo 
"Costo de flete $calculo";
echo 
"<br>";
echo 
"Costo TOTAL en VZLA $venvt"
Lo que sucede es que donde hago los echo no me muestra el calculo que esta dentro del IF, como pueden ver, dentro del IF coloque un echo que es el resultado del calculo, lo que sucede en si es que no me esta tomando el valor de las variables dentro de query, no entiendo que sucede si alguien me puede ayudar pls le agradezco
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #2 (permalink)  
Antiguo 19/10/2006, 13:22
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Pues probablemente sea porque tus if no los estas poniendo dentro de tu bucle (si es que tu consulta puede que arroje más de un resultado "una fila") hazlo de esta manera:

Código PHP:
$pesok $Pesoc 0.454//peso de libras a kilos 
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= '".$pesok."' and peso_final = '".$pesok."' ") or die ("error:\n".mysql_error()); 

while (
$rowprecio mysql_fetch_array($respreciosMYSQL_ASSOC))

   
$peso_inicio $rowprecio["peso_inicial"]; 
   
$peso_final  $rowprecio["peso_final"]; 
   
$preciocom =  $rowprecio["preciocom"]; 
   
$preciomediog =  $rowprecio["preciomediog"]; 
   
$preciovar =  $rowprecio["precio_variacion"]; 

   
//Inicio de calculo del flete del ITEM ESTATICO 
   
$pesomgnf $pesok 0.500
   
$pesomgnf2 round($pesomgnf); //este es el valo que uso para hacer mis calculos 

   
if ( ( $pesomgnf2 >= ) and ( $pesomgnf2 <= ) )
   { 
      
$calculo $preciomediog + ( $pesomgnf2 ) * $preciovar
      echo 
"Costo de flete1 $calculo";     
   }
   else
   {
      if ( ( 
$pesomgnf2 >= 10 ) and ( $pesomgnf2 <= 19 ) )
      {
         
$calculo $preciocom + ( $pesomgnf2 10 ) * $preciovar;
         echo 
"Costo de flete2 $calculo";
      }
      else
      { 
         if ( ( 
$pesomgnf2 >= 20 ) and ( $pesomgnf2 <= 39 ) )
         { 
            
$peso_mediosg $pesomgnf2 1
            
$precio1 $peso_mediosg $preciovar
            
$calculo $preciocom precio1

            echo 
"Costo de flete3 $calculo"
         }
         else
         { 
            if ( ( 
$pesomgnf2 >= 40 ) and ( $pesomgnf2 <= 100 ) )
            { 
               
$calculo $preciocom + ( $pesomgnf2 40 ) * $preciovar;
               echo 
"Costo de flete4 $calculo"
            }
            else
            {                 
               if ( ( 
$pesomgnf2 100 ) )
               { 
                  
$calculo $preciocom + ( $pesomgnf2 100 ) * $preciovar
                  echo 
"Costo de flete5 $calculo"
               } 
            } 
         } 
      }
   }

Aunque en lo personal me gustan más los elseif para no tener tantas llaves:

Código PHP:
$pesok $Pesoc 0.454//peso de libras a kilos 
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= '".$pesok."' and peso_final = '".$pesok."' ") or die ("error:\n".mysql_error()); 

while ( 
$rowprecio mysql_fetch_array $respreciosMYSQL_ASSOC ) )

   
$peso_inicio $rowprecio["peso_inicial"]; 
   
$peso_final  $rowprecio["peso_final"]; 
   
$preciocom =  $rowprecio["preciocom"]; 
   
$preciomediog =  $rowprecio["preciomediog"]; 
   
$preciovar =  $rowprecio["precio_variacion"]; 

   
//Inicio de calculo del flete del ITEM ESTATICO 
   
$pesomgnf $pesok 0.500
   
$pesomgnf2 round($pesomgnf); //este es el valo que uso para hacer mis calculos 

   
if ( ( $pesomgnf2 >= ) and ( $pesomgnf2 <= ) )
   { 
      
$calculo $preciomediog + ( $pesomgnf2 ) * $preciovar
      
$flete 1;
   }
   elseif ( ( 
$pesomgnf2 >= 10 ) and ( $pesomgnf2 <= 19 ) )
   {
      
$calculo $preciocom + ( $pesomgnf2 10 ) * $preciovar;
      
$flete 2;
   }
   elseif ( ( 
$pesomgnf2 >= 20 ) and ( $pesomgnf2 <= 39 ) )
   { 
      
$peso_mediosg $pesomgnf2 1
      
$precio1 $peso_mediosg $preciovar
      
$calculo $preciocom precio1
      
$flete 3;
   }
   elseif ( ( 
$pesomgnf2 >= 40 ) and ( $pesomgnf2 <= 100 ) )
   { 
      
$calculo $preciocom + ( $pesomgnf2 40 ) * $preciovar;
      
$flete 4;
   }
   elseif ( ( 
$pesomgnf2 100 ) )
   {
      
$calculo $preciocom + ( $pesomgnf2 100 ) * $preciovar
      
$flete 5;
   }

   echo 
"Costo del flete$flete $calculo";

Y también ha de ser por que estas encerrando entre comillas simples los números, creo ya habiamos hablado de esto antes ¿no?(Si tu consulta sólo arroja una fila sólamente quita las comillas simples sin poner tus if dentro del while y no uses un bucle si sabes que sólo te dará una fila). Pruebalo y luego me cuentas que tal te fue. Suerte

Última edición por Erikfrancisco; 19/10/2006 a las 13:37
  #3 (permalink)  
Antiguo 19/10/2006, 13:37
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Exclamación

Saludos Erikfrancisco

Coloque como me dijiste y nada, no me muestra la data

Código PHP:
//Saco los datos de precios
$pesok $Pesoc 0.454//peso de libras a kilos  
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= '".$pesok."' and peso_final = '".$pesok."' ") or die ("error:\n".mysql_error());  

while (
$rowprecio mysql_fetch_array($respreciosMYSQL_ASSOC)) 
{  
   
$peso_inicio $rowprecio["peso_inicial"];  
   
$peso_final  $rowprecio["peso_final"];  
   
$preciocom =  $rowprecio["preciocom"];  
   
$preciomediog =  $rowprecio["preciomediog"];  
   
$preciovar =  $rowprecio["precio_variacion"];  

   
//Inicio de calculo del flete del ITEM ESTATICO  
   
$pesomgnf $pesok 0.500;  
   
$pesomgnf2 round($pesomgnf); //este es el valo que uso para hacer mis calculos  

   
if ( ( $pesomgnf2 >= '1' ) and ( $pesomgnf2 <= '9' ) ) 
   {  
      
$calculo $preciomediog + ( $pesomgnf2 ) * $preciovar;  
      echo 
"Costo de flete1 $calculo";      
   } 
   else 
   { 
      if ( ( 
$pesomgnf2 >= '10' ) and ( $pesomgnf2 <= '19' ) ) 
      { 
         
$calculo $preciocom + ( $pesomgnf2 10 ) * $preciovar
         echo 
"Costo de flete2 $calculo"
      } 
      else 
      {  
         if ( ( 
$pesomgnf2 >= '20' ) and ( $pesomgnf2 <= '39') ) 
         {  
            
$peso_mediosg $pesomgnf2 1;  
            
$precio1 $peso_mediosg $preciovar;  
            
$calculo $preciocom precio1;  

            echo 
"Costo de flete3 $calculo";  
         } 
         else 
         {  
            if ( ( 
$pesomgnf2 >= '40' ) and ( $pesomgnf2 <= '100' ) ) 
            {  
               
$calculo $preciocom + ( $pesomgnf2 40 ) * $preciovar
               echo 
"Costo de flete4 $calculo";  
            } 
            else 
            {                  
               if ( ( 
$pesomgnf2 '100' ) ) 
               {  
                  
$calculo $preciocom + ( $pesomgnf2 100 ) * $preciovar;  
                  echo 
"Costo de flete5 $calculo";  
               }  
            }  
         }  
      } 
   } 
}  


$vCosto $itemcantidad $itemcosto;
$Costof $vCosto 2150;
$vSeguro $Costof 0.01//Precio de Seguro del precio fob total
$vSegurof $vSeguro 2150;
$venvt $Costof vSegurof $calculo;
//Insert   DEL PRIMERO
echo "Costo FOB $pesomgnf"
echo 
"<br>";
echo 
"Costo Seguro $vSeguro";
echo 
"<br>";
echo 
"Costo de flete $calculo";
echo 
"<br>";
echo 
"Costo TOTAL en VZLA $venvt"
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #4 (permalink)  
Antiguo 19/10/2006, 13:45
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Ha de ser porque no leiste lo último que edite sobre el uso de las comillas, hazme un favor y vuelve a leer lo que puse. Y al parecer no te gusto lo de los elseif ¿verdad?.
Suerte
  #5 (permalink)  
Antiguo 19/10/2006, 13:46
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Para que sea más claro tu código y más eficiente por qué no usas:
Código PHP:
if(){

}elseif(){

}elseif(){

}else{


Otra cosa, porqué le colocás comillas a los números?
  #6 (permalink)  
Antiguo 19/10/2006, 13:51
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Gracias muchachos, ya coloque mi codigo como me indicaron pero nada, no me muestra la data del calculo

Código PHP:
//Inserto Data de EMBARQUE en Tabla  EL PRIMERO NADA MAS
//Saco el porcentaje seleccionado desde el formulario ""

$resporc mysql_query("SELECT * FROM tarancel WHERE id_aranc = " $itemcodaranc .  mysql_error());
while (
$rowporc mysql_fetch_array($resporcMYSQL_ASSOC)){
$porc =  $rowporc["aran_porcent"];
  }
  

   
//Inicio de calculo del flete del ITEM ESTATICO  
   
$pesomgnf $pesok 0.500;  
   
$pesomgnf2 round($pesomgnf); //este es el valo que uso para hacer mis calculos  

   
if ( ( $pesomgnf2 >= ) and ( $pesomgnf2 <= ) ) 
   {  
      
$calculo $preciomediog + ( $pesomgnf2 ) * $preciovar;  
      
$flete 1
   } 
   elseif ( ( 
$pesomgnf2 >= 10 ) and ( $pesomgnf2 <= 19 ) ) 
   { 
      
$calculo $preciocom + ( $pesomgnf2 10 ) * $preciovar
      
$flete 2
   } 
   elseif ( ( 
$pesomgnf2 >= 20 ) and ( $pesomgnf2 <= 39 ) ) 
   {  
      
$peso_mediosg $pesomgnf2 1;  
      
$precio1 $peso_mediosg $preciovar;  
      
$calculo $preciocom precio1;  
      
$flete 3
   } 
   elseif ( ( 
$pesomgnf2 >= 40 ) and ( $pesomgnf2 <= 100 ) ) 
   {  
      
$calculo $preciocom + ( $pesomgnf2 40 ) * $preciovar
      
$flete 4
   } 
   elseif ( ( 
$pesomgnf2 100 ) ) 
   { 
      
$calculo $preciocom + ( $pesomgnf2 100 ) * $preciovar;  
      
$flete 5
   } 

   echo 
"Costo del flete$flete $calculo"
}  


$vCosto $itemcantidad $itemcosto;
$Costof $vCosto 2150;
$vSeguro $Costof 0.01//Precio de Seguro del precio fob total
$vSegurof $vSeguro 2150;
$venvt $Costof vSegurof $calculo;
//Insert   DEL PRIMERO
echo "Costo FOB $pesomgnf"
echo 
"<br>";
echo 
"Costo Seguro $vSeguro";
echo 
"<br>";
echo 
"Costo de flete $calculo";
echo 
"<br>";
echo 
"Costo TOTAL en VZLA $venvt"
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #7 (permalink)  
Antiguo 19/10/2006, 13:54
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
El select de donde lo sacaste, por lo menos yo no te puse esto:

Código PHP:
$resporc mysql_query("SELECT * FROM tarancel WHERE id_aranc = " $itemcodaranc .  mysql_error()); 
checalo bien. Suerte :ariba:
  #8 (permalink)  
Antiguo 19/10/2006, 13:57
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Veo 2 cosas: no hacés el cálculo dentro del while ni usás $porc, en base a qué entonces hacés el cálculo?
  #9 (permalink)  
Antiguo 19/10/2006, 14:00
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Código PHP:
//Saco los datos de precios
$pesok $Pesoc 0.454//peso de libras a kilos  
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= '".$pesok."' and peso_final = '".$pesok."' ") or die ("error:\n".mysql_error());  

while ( 
$rowprecio mysql_fetch_array $respreciosMYSQL_ASSOC ) ) 
{  
   
$peso_inicio $rowprecio["peso_inicial"];  
   
$peso_final  $rowprecio["peso_final"];  
   
$preciocom =  $rowprecio["preciocom"];  
   
$preciomediog =  $rowprecio["preciomediog"];  
   
$preciovar =  $rowprecio["precio_variacion"];  

   
//Inicio de calculo del flete del ITEM ESTATICO  
   
$pesomgnf $pesok 0.500;  
   
$pesomgnf2 round($pesomgnf); //este es el valo que uso para hacer mis calculos  

   
if ( ( $pesomgnf2 >= ) and ( $pesomgnf2 <= ) ) 
   {  
      
$calculo $preciomediog + ( $pesomgnf2 ) * $preciovar;  
      
$flete 1
   } 
   elseif ( ( 
$pesomgnf2 >= 10 ) and ( $pesomgnf2 <= 19 ) ) 
   { 
      
$calculo $preciocom + ( $pesomgnf2 10 ) * $preciovar
      
$flete 2
   } 
   elseif ( ( 
$pesomgnf2 >= 20 ) and ( $pesomgnf2 <= 39 ) ) 
   {  
      
$peso_mediosg $pesomgnf2 20;  
      
$precio1 $peso_mediosg $preciovar;  
      
$calculo $preciocom precio1;  
      
$flete 3
   } 
   elseif ( ( 
$pesomgnf2 >= 40 ) and ( $pesomgnf2 <= 100 ) ) 
   {  
      
$calculo $preciocom + ( $pesomgnf2 40 ) * $preciovar
      
$flete 4
   } 
   elseif ( ( 
$pesomgnf2 100 ) ) 
   { 
      
$calculo $preciocom + ( $pesomgnf2 100 ) * $preciovar;  
      
$flete 5
   } 

   echo 
"Costo del flete$flete $calculo"
}  

$vCosto $itemcantidad $itemcosto;
$Costof $vCosto 2150;
$vSeguro $Costof 0.01//Precio de Seguro del precio fob total
$vSegurof $vSeguro 2150;
$venvt $Costof vSegurof $calculo;
//Insert   DEL PRIMERO
echo "Costo FOB $pesomgnf"
echo 
"<br>";
echo 
"Costo Seguro $vSeguro";
echo 
"<br>";
echo 
"Costo de flete $calculo";
echo 
"<br>";
echo 
"Costo TOTAL en VZLA $venvt"
Ahora si, es este, pero no me muestra el echo :(
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #10 (permalink)  
Antiguo 19/10/2006, 14:09
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Cierto ese detalle se me fue:

Código PHP:
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= $pesok and peso_final = $pesok ") or die ("error:\n".mysql_error()); 
Quitale las comillas simples a la consulta, insisto, ya habiamos hablado de eso. Suerte
  #11 (permalink)  
Antiguo 19/10/2006, 14:10
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Quite las comillas y nada :(
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #12 (permalink)  
Antiguo 19/10/2006, 14:16
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Y estás seguro de que la consulta arroja datos, porque el resto parece ok, salvo lo que no se ve (la conexión, la definición de $Pesoc)
  #13 (permalink)  
Antiguo 19/10/2006, 14:18
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Este es el code completo

Código PHP:
//Variables tomadas desde el formulario de insertar data

//Variables USUARIO

$calncot $_POST['calncot'];
$calcliente $_POST['calcli'];
$calrif $_POST['calrif'];
$calvendor $_POST['calvendor'];
$calfechasol $_POST['calfechasol'];
$calref $_POST['calref'];

//Variables de PRODUCTOS

$itemdesc $_POST['itemdesc'];
$itemcantidad $_POST['itemcant'];
$itempeso $_POST['itempeso'];
$itemcosto $_POST['itemcosto'];
$itemcodaranc $_POST['itemcodaranc'];


//Inserto Data de USUARIOS en Tabla 

    
$resultu mysql_query("insert into ".$tdatosc." (datosc_fecha,datosc_ncot,datosc_cliente,datosc_rif, datosc_vendor,datosc_dfecha,datosc_referencia) values(NOW(),'".$calncot."','".$calcliente."','".$calrif."','".$calvendor."','".$calfechasol."','".$calref."')" .  mysql_error());
    
$Uid mysql_insert_id();
  if (!
$resultu) {
     die(
'Invalid query: ' mysql_error());
     }

 echo 
"Datos de Cotizacion agregada";
echo 
"<br>";

//inserto solo el primer registro
$Pesoc $itempeso $itemcantidad;

$resultp mysql_query("insert into ".$tproductos." (pro_nombre,pro_peso,pro_cant,pro_fob,pro_idcodara,id_emb,pro_pesot) values('".$itemdesc."','".$itempeso."','".$itemcantidad."','".$itemcosto."','".$itemcodaranc."','".$calncot."','".$Pesoc."')" .  mysql_error());
$Pid mysql_insert_id();
  if (!
$resultp) {
     die(
'Invalid query: ' mysql_error());
     }
     
//Inserto Data de EMBARQUE en Tabla  EL PRIMERO NADA MAS
//Saco el porcentaje seleccionado desde el formulario ""

$resporc mysql_query("SELECT * FROM tarancel WHERE id_aranc = " $itemcodaranc .  mysql_error());
while (
$rowporc mysql_fetch_array($resporcMYSQL_ASSOC)){
$porc =  $rowporc["aran_porcent"];
  }
  
//Saco los datos de precios
$pesok $Pesoc 0.454//peso de libras a kilos  
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= $pesok and peso_final = $pesok ") or die ("error:\n".mysql_error()); 

while ( 
$rowprecio mysql_fetch_array $respreciosMYSQL_ASSOC ) ) 
{  
   
$peso_inicio $rowprecio["peso_inicial"];  
   
$peso_final  $rowprecio["peso_final"];  
   
$preciocom =  $rowprecio["preciocom"];  
   
$preciomediog =  $rowprecio["preciomediog"];  
   
$preciovar =  $rowprecio["precio_variacion"];  

   
//Inicio de calculo del flete del ITEM ESTATICO  
   
$pesomgnf $pesok 0.500;  
   
$pesomgnf2 round($pesomgnf); //este es el valo que uso para hacer mis calculos  

   
if ( ( $pesomgnf2 >= ) and ( $pesomgnf2 <= ) ) 
   {  
      
$calculo $preciomediog + ( $pesomgnf2 ) * $preciovar;  
      
$flete 1
   } 
   elseif ( ( 
$pesomgnf2 >= 10 ) and ( $pesomgnf2 <= 19 ) ) 
   { 
      
$calculo $preciocom + ( $pesomgnf2 10 ) * $preciovar
      
$flete 2
   } 
   elseif ( ( 
$pesomgnf2 >= 20 ) and ( $pesomgnf2 <= 39 ) ) 
   {  
      
$peso_mediosg $pesomgnf2 20;  
      
$precio1 $peso_mediosg $preciovar;  
      
$calculo $preciocom precio1;  
      
$flete 3
   } 
   elseif ( ( 
$pesomgnf2 >= 40 ) and ( $pesomgnf2 <= 100 ) ) 
   {  
      
$calculo $preciocom + ( $pesomgnf2 40 ) * $preciovar
      
$flete 4
   } 
   elseif ( ( 
$pesomgnf2 100 ) ) 
   { 
      
$calculo $preciocom + ( $pesomgnf2 100 ) * $preciovar;  
      
$flete 5
   } 

echo 
"Costo del flete ".$flete.$calculo;
}  

$vCosto $itemcantidad $itemcosto;
$Costof $vCosto 2150;
$vSeguro $Costof 0.01//Precio de Seguro del precio fob total
$vSegurof $vSeguro 2150;
$venvt $Costof vSegurof $calculo;
//Insert   DEL PRIMERO
echo "Costo FOB $pesomgnf"
echo 
"<br>";
echo 
"Costo Seguro $vSeguro";
echo 
"<br>";
echo 
"Costo de flete $calculo";
echo 
"<br>";
echo 
"Costo TOTAL en VZLA $venvt"
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #14 (permalink)  
Antiguo 19/10/2006, 14:23
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Qué te muestra si colocás esto antes del echo?
Código PHP:
 } else{$flete='error';$calculo='error';} 

echo 
"Costo del flete ".$flete.$calculo
  #15 (permalink)  
Antiguo 19/10/2006, 14:23
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
ummm

El problema esta aqui

Código PHP:
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= $pesok and peso_final <= $pesok ") or die ("error:\n".mysql_error()); 
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #16 (permalink)  
Antiguo 19/10/2006, 14:25
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Panino, con lo que me dijiste no me muestra nada, el problema creo que esta en el query :(
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #17 (permalink)  
Antiguo 19/10/2006, 14:28
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Si, en efecto, si no se muestra nada significa que no se ejecuta el condicional, esto se debe a que el while no actúa. Si tenés phpMyAdmin probá a ejecutar el query directamente con valores ficticios y ver que pasa.
También podrías ver qé tira un echo mysql_num_rows($resprecios);
  #18 (permalink)  
Antiguo 19/10/2006, 14:39
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
ok, solo una pregunta ¿donde haces la conexion y la seleccion de la bd? que no la veo:

Código PHP:
mysql_pconnect("servername","username","password");
mysql_select_db('base de datos'); 
  #19 (permalink)  
Antiguo 19/10/2006, 14:43
Avatar de chr_c  
Fecha de Ingreso: junio-2003
Mensajes: 204
Antigüedad: 20 años, 11 meses
Puntos: 0
Que esta linea?????
Código PHP:
$resporc mysql_query("SELECT * FROM tarancel WHERE id_aranc = " $itemcodaranc .  mysql_error()); 
me imagino que un error de copy paste....

cuando deberia ser asi...

Código PHP:
$resporc mysql_query("SELECT * FROM tarancel WHERE id_aranc = " $itemcodaranc) or die( mysql_error()); 
  #20 (permalink)  
Antiguo 19/10/2006, 14:45
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Código PHP:
<? ob_start();
include(
"top.php");
include 
"dataaccess1.php" ;
dbconnect();
?>
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #21 (permalink)  
Antiguo 19/10/2006, 14:56
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Concuerdo con chr_c de que el error ha de ser esta línea (solo que le faltaron algunos detallitos):

Código PHP:
$resporc mysql_query("SELECT * FROM tarancel WHERE id_aranc = $itemcodaranc") or die( mysql_error()); 
Eso suponiendo que $itemcodaranc es un número de ser un texto sería:

Código PHP:
$resporc mysql_query("SELECT * FROM tarancel WHERE id_aranc = '".$itemcodaranc."'") or die( mysql_error()); 
  #22 (permalink)  
Antiguo 19/10/2006, 15:14
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
el query es este

fue un error al copy and paste

Código PHP:
//Saco los datos de precios 
$pesok $Pesoc 0.454//peso de libras a kilos   
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= '".$pesok."' and peso_final = '".$pesok."' ") or die ("error:\n".mysql_error()); 

este es el que no me muestra manda
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #23 (permalink)  
Antiguo 19/10/2006, 15:19
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
No, nos referimos al del while que esta arriba:

Código PHP:
$resporc mysql_query("SELECT * FROM tarancel WHERE id_aranc = " $itemcodaranc .  mysql_error()); 
while (
$rowporc mysql_fetch_array($resporcMYSQL_ASSOC)){ 
$porc =  $rowporc["aran_porcent"]; 
  } 
tu lo publicaste. Además que paso con lo de las comillas con los pesos.
  #24 (permalink)  
Antiguo 19/10/2006, 15:21
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Esto qué te muestra?:
Código PHP:
echo "select * from tprecios WHERE peso_inicial >= '".$pesok."' and peso_final = '".$pesok."' "
Te muestra bien las variables?
Si hacés la misma consulta en el phpMyAdmin o en la consola mysql te funciona?
Estás seguro de que hay datos que cumplen con esa condición en la tabla?

También fijate en la otra consulta que mencionan Erikfransisco y Chr_c
  #25 (permalink)  
Antiguo 19/10/2006, 20:20
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Saludos, la consulta que menciona Francisco fue un error mio, eso no aplica para ese query que quiero hacer, el de seleccionar

Código PHP:
//Saco los datos de precios  
$pesok $Pesoc 0.454//peso de libras a kilos    
$resprecios mysql_query("select * from tprecios WHERE peso_inicial >= '".$pesok."' and peso_final = '".$pesok."' ") or die ("error:\n".mysql_error()); 
Ya consegui la solucion, solamente selecciono el que sea mayor a $pesok y me muestra resultados, con el anteriuor logico que no me mostrara nada por que le estaba diciendo, que me seleccionara el que fuese mayor a X valor y menor a ese mismo X valor, por ende no iba a mostrar data por que no existe tales registros

Gracias muchachos por tooda la ayuda prestada, los felicito por la cordura jejeje

Saludos,.
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
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 08:54.