ok... yo uso variables de session para eso del for... pero no entendi eso de creear un atributo nuevo... k conste k no se usar clases, soy nuevo en esa parte...
este es el codigo completo y me diras entonces como acerlo si no es mucha molestia
Código PHP:
<?php
//session_unset();borra todas la variables de session
class carrito {
//atributos de la clase
var $num_productos;
var $array_id_prod;
var $array_nombre_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,$precio_prod){
$this->array_id_prod[$this->num_productos]=$id_prod;
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
$this->array_precio_prod[$this->num_productos]=$precio_prod;
$this->num_productos++;
}
//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=0 cellpadding="0">';
//echo '<div class="shopping_cart">';
//echo '<table border=0 cellpadding="0" width="0">';
//echo '<div class="cart_title">Carrito de Compra</div>';
echo '<tr>';
echo '<td><b>Nombre producto</b></td>';
echo '<td><b>Precio</b></td>';
echo '<td> </td>';
echo '</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><a href='elimina_carrito.php?linea=$i'>Eliminar producto</td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i];
} $array_precio_prod= number_format($array_precio_prod);
}
// echo '<div class="cart_details">';
$total_precio = $suma * 1.16;
$total_precio = "$".number_format($total_precio).".00";
$suma ="$".number_format($suma).".00";
//muestro el total
// echo '<span class="border_cart"></span>';
echo '<tr><td><b>TOTAL:</b></td><td> <b><span class="price">'.$suma.'</span></b></td><td></td></tr>';
//total más Impuestos
echo "<tr><td><b>Impuesto (16%):</b></td><td> <b><span class='price'>" . $total_precio . "</span</b></td><td> </td></tr>";
echo "<tr><td><b>Productos Elegidos:</b></td><td> <b>" . $i. "</b></td><td> </td></tr></span>";
// echo'</div>';
// echo '</div>';
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;
}
}
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
?>
y cuando kiero imprimir el carrito lo ago asi
Código PHP:
session_start();
$_SESSION["ocarrito"]->imprime_carrito();