Okales... Tonces hay que hacer otro arreglo... te muestro:
Código PHP:
<?
class carrito {
//atributos de la clase
var $num_productos;
var $array_id_prod;
var $array_nombre_prod;
var $array_col_prod;
var $array_tam_prod;
var $array_cant_prod;
var $array_pu_prod;
var $array_precio_prod;
//constructor. Realiza las tareas de inicializar los objetos cuando se instancian
//inicializa el numero de productos a 0
function carrito () {
$this->num_productos=0;
}
//Introduce un producto en el carrito. Recibe los datos del producto
//Se encarga de introducir los datos en los arrays del objeto carrito
//luego aumenta en 1 el numero de productos
function introduce_producto($id_prod, $nombre_prod, $col_prod, $tam_prod, $cant_prod, $pu_prod){
$this->array_id_prod[$this->num_productos]=$id_prod;
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
$this->array_col_prod[$this->num_productos]=$col_prod;
$this->array_tam_prod[$this->num_productos]=$tam_prod;
$this->array_cant_prod[$this->num_productos]=$cant_prod;
$this->array_pu_prod[$this->num_productos]=$pu_prod;
$this->array_precio_prod[$this->num_productos]= $this->array_cant_prod[$this->num_productos] * $this->array_pu_prod[$this->num_productos];
$this->num_productos++;
}
//Chequea si los datos del producto existen
function check_producto($id_prod, $nombre_prod, $col_prod, $tam_prod, $cant_prod, $pu_prod){
for($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i] == $id_prod){
$this->array_id_prod[$i] = $id_prod;
$this->array_nombre_prod[$i] = $nombre_prod;
$this->array_col_prod[$i] = $col_prod;
$this->array_tam_prod[$i] = $tam_prod;
$this->array_cant_prod[$i] = $cant_prod;
$this->array_pu_prod[$i] = $pu_prod;
$this->array_precio_prod[$i] = $this->array_cant_prod[$i] * $this->array_pu_prod[$i];
return "actualizado";//listo
}else{
return "no existe el producto";//no existe
}
}
return "no existen productos en el carrito";//por si lo necesitas saber
}
//Muestra el contenido del carrito de la compra
//ademas pone los enlaces para eliminar un producto del carrito
function imprime_carrito(){
$suma = 0;
echo '<table border=1 cellpadding="3">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Tamaño</b></td>
<td><b>Cantidad</b></td>
<td><b>P/U</b></td>
<td><b>Precio</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_tam_prod[$i] . "</td>";
echo "<td>" . $this->array_cant_prod[$i] . "</td>";
echo "<td>" . $this->array_pu_prod[$i] ." \$us</td>";
echo "<td>" . $this->array_precio_prod[$i] . " \$us</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
echo '</tr>';
$suma += ($this->array_precio_prod[$i]);
}
}
//muestro el total
echo "<tr><td colspan='4'><b>TOTAL:</b></td><td> <b>$suma</b></td><td> </td></tr>";
//total más IVA
echo "<tr><td colspan='4'><b>IVA (14%):</b></td><td> <b>" . $suma * 1.14 . "</b></td><td> </td></tr>";
echo "</table>";
}
//elimina un producto del carrito. recibe la linea del carrito que debe eliminar
//no lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado
function elimina_producto($linea){
$this->array_id_prod[$linea]=0;
}
}
//inicio la sesión
session_start();
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
?>
Código PHP:
<?
include("lib_carrito.php");
$LibCarrito = new carrito();
if($LibCarrito->check_producto($_GET["id"], $_GET["nombre"], $_GET["col"], $_GET["tam"], $_GET["cant"], $_GET["precio"]) == "actualizado"){
$LibCarrito->imprime_carrito();
}elseif($LibCarrito->check_producto($_GET["id"], $_GET["nombre"], $_GET["col"], $_GET["tam"], $_GET["cant"], $_GET["precio"]) == "no existe el producto"){
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"], $_GET["col"], $_GET["tam"], $_GET["cant"], $_GET["precio"]);
$LibCarrito->imprime_carrito();
}elseif($LibCarrito->check_producto($_GET["id"], $_GET["nombre"], $_GET["col"], $_GET["tam"], $_GET["cant"], $_GET["precio"]) == "no existen productos en el carrito"){
$LibCarrito->imprime_carrito();
}
?>
Espero funcione (pk no lo probe)