Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/10/2006, 13:22
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 21 años, 3 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