Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Linton en 2 Enero 2014, 23:21 pm



Título: Fallo de variable $total en carrito de compra
Publicado por: Linton en 2 Enero 2014, 23:21 pm
 :-( No soy capaz de ver dónde falla este código:

 
Código
  1.  <?php
  2.        if(isset($_SESSION['carrito'])){
  3.            $datos=$_SESSION['carrito'];
  4.            $total=0;
  5.            for($i=0; $i<count($datos);$i++){
  6.            ?>
  7.        <div class="producto">
  8.            <img src="productos/<?php echo $datos['$i']['Imagen']; ?>"><br/>
  9.            <span><?php echo $datos[$i]['Nombre'];?></span><br/>
  10.            <span>Precio: <?php echo $datos[$i]['Precio'];?></span><br/>
  11.            <span>Cantidad: <input type="text" value="<?php echo $datos[$i]['Cantidad'];?>"></span>
  12.            <span>Subtotal: <?php echo $datos[$i]['Cantidad']*$datos[$i]['Precio'];?></span>
  13.  
  14.        </div>
  15.            <?php
  16.            $total= $total + ($datos[$i]['Cantidad']*$datos[$i]['Precio']);
  17.            }
  18.            } else {
  19.                echo '<h2>No has metido nada en el carrito de compras</h2>';
  20.                }
  21.                echo '<h2>Total: '.$total.'</h2>';
  22.                ?>
  23.                    <a href="./">Ver catalogo</a>

El resultado cuando lo ejecuto:

    Notice: Undefined variable: total in C:\xampp\htdocs\htdocs\carrito\carritodecompras.ph p on line 39

La maldita línea 39 es la que contiene   echo '<h2>Total: '.$total.'</h2>';

¡Ayudaaaaaaaa!  :)  Gracias de antemano, un saludo.


Título: Re: Fallo de variable $total en carrito de compra
Publicado por: Shell Root en 2 Enero 2014, 23:28 pm
Pienso que es porque no esta declarada, por la inclusión de código HTML no veo el flujo normal de la code, pero contando con el número de corchetes abiertos y cerrados, creo que esa variable esta por fuera de todo, es decir, del primer condicional, entonces cuando el primer condicional no se cumple, printeas la variable sin estar declarada.

Para esto y para ver si estoy en lo cierto, intenta declarar la variable antes del primer condicional. Si te das cuenta de que allí es donde falla, entonces allí deberías de ponerle más logica al code y mejorarlo.