Foros del Web » Programando para Internet » PHP »

Calculo en PHP

Estas en el tema de Calculo en PHP en el foro de PHP en Foros del Web. Hola a todos, Estoy intentando practicando PHP e intento hacer un código para que me calcule el precio del transporte según el total de la ...
  #1 (permalink)  
Antiguo 13/12/2014, 12:06
Avatar de jors_11  
Fecha de Ingreso: marzo-2011
Ubicación: Granollers
Mensajes: 79
Antigüedad: 13 años
Puntos: 2
Pregunta Calculo en PHP

Hola a todos,

Estoy intentando practicando PHP e intento hacer un código para que me calcule el precio del transporte según el total de la factura, pero me doy cuenta que hay veces que me funciona y otras veces no me calcula nada, me podríais decir si he hecho algún error.
Gracias de antemano, Saludos


Código PHP:
Ver original
  1. <?php
  2.                 $total=($datos[$i]['Cantidad']*$datos[$i]['Precio'])+$total;
  3.             }
  4.                
  5.             if($total < 100) {
  6.             $sumar = 30;
  7.             }
  8.             if($total > 150) {
  9.             $sumar = 40;
  10.             }
  11.             if($total > 600) {
  12.             $sumar = 80;
  13.             }
  14.             if($total > 1000) {
  15.             $sumar = 160;
  16.             }
  17.             if($total > 3000) {
  18.             $sumar = 200;
  19.             }
  20.             if($total > 5000) {
  21.             $sumar = 300;
  22.             }
  23.             if($total > 6000) {
  24.             $sumar = 350;
  25.             }      
  26.            
  27.             $total2 = $sumar;
  28.            
  29.             $total3 = $total+$total2;
  30.             echo '<center><h2 id="total">Gastos de transporte: '.$total2.' €</h2></center>';
  31.             echo '<center><h2 id="total">Total: '.$total3.' €</h2></center>';
  32.             if($total!=0){
  33.                 }else{
  34.                 echo '<center><h2>No has añadido ningun producto</h2></center>';
  35.             }
  36.                    
  37.             ?>
  #2 (permalink)  
Antiguo 13/12/2014, 12:26
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Calculo en PHP

Sin todo el código, es muy complicado de deducir todo...
Deberias usar CASES, e intentar limitar mejor las condiciones... el algoritmo que usas es muy ambiguo... cómo el programa va a entender que si tienes 5.500 debe tomar el caso ($total > 5000) o el caso ($total > 6000).. no puede tomar esa decisión facilmente... tú si, pero PHP no tiene inteligencia artificial.

Deberías limitar mas.. es decir con Between 5000 - 5999 por ejemplo...

otra cosa que puede estar pasando es que los datos iniciales de $total no está trayendo los arreglos correctamente... deberias hacer un VAR DUMP para serciorarte.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Última edición por loncho_rojas; 13/12/2014 a las 12:35
  #3 (permalink)  
Antiguo 13/12/2014, 16:48
Avatar de jors_11  
Fecha de Ingreso: marzo-2011
Ubicación: Granollers
Mensajes: 79
Antigüedad: 13 años
Puntos: 2
Respuesta: Calculo en PHP

Si me puedes mostrar código de ejemplo te lo agradeceré mucho,
Es una tienda online que he creado siguiendo un tutorial en YouTube, y a pesar de que mi nivel sigue siendo escaso, la tienda funciona bien. lo único que no funciona al 100% es el mecanismo para calcular el transporte que yo he creado, en algunas ocasiones me ha llegado alguna factura sin coste de transporte y mi mujer un poco más y me hecha de casa


Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     include './conexion.php';
  4.     if(isset($_SESSION['carrito'])){
  5.         if(isset($_GET['id'])){
  6.                     $arreglo=$_SESSION['carrito'];
  7.                     $encontro=false;
  8.                     $numero=0;
  9.                     for($i=0;$i<count($arreglo);$i++){
  10.                         if($arreglo[$i]['Id']==$_GET['id']){
  11.                             $encontro=true;
  12.                             $numero=$i;
  13.                         }
  14.                     }
  15.                     if($encontro==true){
  16.                         $arreglo[$numero]['Cantidad']=$arreglo[$numero]['Cantidad']+1;
  17.                         $_SESSION['carrito']=$arreglo;
  18.                     }else{
  19.                         $nombre="";
  20.                         $precio=0;
  21.                         $imagen="";
  22.                         $re=mysql_query("select * from productos where id=".$_GET['id']);
  23.                         while ($f=mysql_fetch_array($re)) {
  24.                             $nombre=$f['nombre'];
  25.                             $precio=$f['precio'];
  26.                             $imagen=$f['imagen'];
  27.                         }
  28.                         $datosNuevos=array('Id'=>$_GET['id'],
  29.                                         'Nombre'=>$nombre,
  30.                                         'Precio'=>$precio,
  31.                                         'Imagen'=>$imagen,
  32.                                         'Cantidad'=>1);
  33.  
  34.                         array_push($arreglo, $datosNuevos);
  35.                         $_SESSION['carrito']=$arreglo;
  36.  
  37.                     }
  38.         }
  39.  
  40.  
  41.  
  42.  
  43.     }else{
  44.         if(isset($_GET['id'])){
  45.             $nombre="";
  46.             $precio=0;
  47.             $imagen="";
  48.             $re=mysql_query("select * from productos where id=".$_GET['id']);
  49.             while ($f=mysql_fetch_array($re)) {
  50.                 $nombre=$f['nombre'];
  51.                 $precio=$f['precio'];
  52.                 $imagen=$f['imagen'];
  53.             }
  54.             $arreglo[]=array('Id'=>$_GET['id'],
  55.                             'Nombre'=>$nombre,
  56.                             'Precio'=>$precio,
  57.                             'Imagen'=>$imagen,
  58.                             'Cantidad'=>1);
  59.             $_SESSION['carrito']=$arreglo;
  60.         }
  61.     }
  62. ?>
  63. <!DOCTYPE html>
  64. <html lang="es">
  65. <head>
  66.     <meta charset="utf-8"/>
  67.     <title>Carrito de Compras</title>
  68.     <link rel="icon" type="image/png" href="/images/favicon.png" />
  69.     <link rel="stylesheet" type="text/css" href="./css/estilos2.css">
  70.     <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
  71.     <script type="text/javascript"  src="./js/scripts.js"></script>
  72.     <style type="text/css">
  73. <!--
  74. .Estilo1 {font-family: Arial, Helvetica, sans-serif}
  75. -->
  76.     </style>
  77. </head>
  78. <body>
  79.     <header>
  80.         <img src="./imagenes/LOGO-DEFINITIU.png" id="logo">
  81.         <a href="./carritodecompras.php" title="ver carrito de compras">
  82.             <img src="./imagenes/carrito.png">
  83.         </a>
  84.     </header>
  85.     <section>
  86.     <?php
  87. ?>
  88. <?php
  89. if (isset($_SESSION['k_username'])) {
  90.     echo '<center><h3>Usuario: '.$_SESSION['k_username']."</h3></center>";
  91.     echo '<p><center><a href="http://www.mipagina.com/registro-usuario/logout.php" class="aceptar" style="width:330px"> Cerrar sesión y salir</a></center></p>';
  92. }
  93. ?>
  94.         <?php
  95.             $total=0;
  96.             if(isset($_SESSION['carrito'])){
  97.             $datos=$_SESSION['carrito'];
  98.            
  99.             $total=0;
  100.             for($i=0;$i<count($datos);$i++){
  101.                
  102.     ?>
  103.                 <div class="producto">
  104.                     <center>
  105.                         <img src="./productos/<?php echo $datos[$i]['Imagen'];?>"><br>
  106.                         <span ><?php echo $datos[$i]['Nombre'];?></span><br>
  107.                         <span>Precio: <?php echo $datos[$i]['Precio'];?></span><br>
  108.                         <span class="subtotal">Subtotal:<?php echo $datos[$i]['Cantidad']*$datos[$i]['Precio'];?></span><br>
  109.                     </center>
  110.                 </div>
  111.             <?php
  112.                 $total=($datos[$i]['Cantidad']*$datos[$i]['Precio'])+$total;
  113.             }
  114.                
  115.             if($total < 100) {
  116.             $sumar = 30;
  117.             }
  118.             if($total > 150) {
  119.             $sumar = 40;
  120.             }
  121.             if($total > 600) {
  122.             $sumar = 80;
  123.             }
  124.             if($total > 1000) {
  125.             $sumar = 160;
  126.             }
  127.             if($total > 3000) {
  128.             $sumar = 200;
  129.             }
  130.             if($total > 5000) {
  131.             $sumar = 300;
  132.             }
  133.             if($total > 6000) {
  134.             $sumar = 350;
  135.             }      
  136.            
  137.             $total2 = $sumar;
  138.            
  139.             $total3 = $total+$total2;
  140.             echo '<center><h2 id="total">Gastos de transporte: '.$total2.' €</h2></center>';
  141.             echo '<center><h2 id="total">Total: '.$total3.' €</h2></center>';
  142.             if($total!=0){
  143.                 }else{
  144.                 echo '<center><h2>No has añadido ningun producto</h2></center>';
  145.             }
  146.                    
  147.             ?>
  148.                 <form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="formulario">
  149.                     <input type="hidden" name="cmd" value="_cart">
  150.                     <input type="hidden" name="upload" value="1">
  151.                     <input type="hidden" name="business" value="[email protected]">
  152.                     <input type="hidden" name="currency_code" value="EUR">
  153.                    
  154.                     <?php
  155.                         for($i=0;$i<count($datos);$i++){
  156.                     ?>
  157.                         <input type="hidden" name="item_name_<?php echo $i+1;?>" value="<?php echo $datos[$i]['Nombre'];?>">
  158.                         <input type="hidden" name="amount_<?php echo $i+1;?>" value="<?php echo $datos[$i]['Precio'];?>">
  159.                         <input  type="hidden" name="quantity_<?php echo $i+1;?>" value="<?php echo $datos[$i]['Cantidad'];?>">
  160.                         <input type="hidden" name="shipping_<?php echo $i+1;?>" value="<?php echo $total2;?>">  
  161.                         <?php
  162.                         }
  163.                     ?>
  164.                        
  165.  
  166.                 <center>
  167.                 <input type="submit" value="Pago mediante PayPal" class="aceptar" style="width:330px">
  168.                 </center>
  169.             </form>
  170.             <?php
  171.             }
  172.            
  173.         ?>
  174.        
  175.         <br>
  176.         <center>
  177.         <form action="http://www.mipagina.com/carrito2/pago2.php"><input type="submit" value="Pago mediante transferencia" class="aceptar" style="width:330px">
  178.         </form>
  179.         </center>  
  180.     </section>
  181. </body>
  182. </html>

Etiquetas: calculo
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 22:49.