Hola, estoy haciendo un carrito de compras y bueno tengo un problemita; al agregar un producto siempre me sale el ultimo producto en la lista:
dejo el código de la función que procesa el carrito:
Código PHP:
Ver originalfunction imprime_carrito(){
$suma = 0;
echo '<table border=1 cellpadding="3">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td><b>Cant.</b></td>
<td><b>SubTotal</b></td>
<td> </td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
echo '<tr>';
echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i] . "</td>";
echo "<td>" . $this->array_cantidad_prod[$i] . "</td>";
echo "<td>" . $this->array_cantidad_prod[$i] * $this->array_precio_prod[$i] . "</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'><img src='images/carro_eliminar.gif'/></td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
//muestro el total
echo "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td> </td></tr>";
//total más IVA
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 1.16 . "</b></td><td> </td></tr>";
echo "</table>";
}
ahora el código donde muestro los productos en el sitio:
Código PHP:
Ver original<?php
$i= 0;
{
?>
<div class="producto" id="<?php $row['nom_prod']; ?>">
<img src="productos/<?php echo $row['id_prod']?>.jpg" height="130" width="130" align="left"/>
<?php
echo "<h1>" .$row['nom_prod'], "</h1>";
$nombre= $row['nom_prod'];
?>
<p><?php echo $row['coment_prod']; ?></p>
<form action="agregar_producto.php" method="post">
Cantidad: <input name="cantidad" type="text" id="cantidad" size="2" />
<?php
echo "# ID: " .$row['id_prod'], ", ";
$id = $row['id_prod'];
echo "Precio: " .$row['precio_prod'], " ";
$precio= $row['precio_prod'];
$ids[]=$id;
$nombres[]=$nombre;
$precios[]=$precio;
$_SESSION["nom_prod"]= $nombres[$i];
$_SESSION["id_prod"]= $ids[$i];
$_SESSION["precio_prod"]= $precios[$i];
$i= $i+1;
?>
<input type="submit" value="Añadir al Carro" />
</form>
</div>
<?php
}
?>
Entiendo que el problema podría estar en el WHILE, por eso le puse un i++
pero aun así no se me soluciona...
ojala me puedan ayudar, desde ya muchas gracias!!