Código:
Se muestran los datos del objeto carrito://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(); } class carrito { //atributos de la clase var $num_productos; var $array_id_prod; var $array_nombre_prod; var $array_precio_prod; var $array_fecha_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,$fecha_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->array_fecha_prod[$this->num_productos]=$fecha_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; <p align="center"><img src="images/carro.gif"></p> <table border=1 align="center" cellpadding="4"> <tr> <td><b>Id</b></td> <td><b>Nombre producto</b></td> <td><b>Precio</b></td> <td><b>Fecha</b></td> </tr>'; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){ echo '<tr>'; echo "<td><b>" . $this->array_id_prod[$i] . "</b></td>"; echo "<td><b>" . $this->array_nombre_prod[$i] . "</b></td>"; echo "<td>" . $this->array_precio_prod[$i] . "</td>"; echo "<td>" . $this->array_fecha_prod[$i] . "</td>"; echo "<td><a href='?carrito=eliminar&linea=$i'>Eliminar producto</td>"; echo '</tr>'; $suma += $this->array_precio_prod[$i]; } } //muestro la cantidad total total //muestro el total echo "<tr><td><b>TOTAL PRECIO:</b></td><td> </td><td><b>$suma</b>€</td><td> </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; } }
He hecho
var_dump( $_SESSION['ocarrito']) de dos registros y sale
Código:
Me pregunto como meto un objeto dentro de un array, y como meto el array en un insert a una base de datos. Me interearía meter de ese objeto solo los datos del id del producto con eso ya tengo identificado lo demás, ya que el comprador, la fecha los puedo sacar del mismo formulario con otras variables en campos ocultos.object(carrito)#1 (5) { ["num_productos"]=> int(2) ["array_id_prod"]=> array(2) { [0]=> string(4) "2231" [1]=> string(4) "2222" } ["array_nombre_prod"]=> array(2) { [0]=> string(7) "platano" [1]=> string(7) "manzana" } ["array_precio_prod"]=> array(2) { [0]=> string(1) "5" [1]=> string(1) "3" } ["array_fecha_prod"]=> array(2) { [0]=> string(19) "2011-06-29 22:18:08" [1]=> string(19) "2011-06-29 22:20:43" } }
Me interesaría insertar en mysql de ese objeto este dato:
["array_id_prod"]=> array(2) { [0]=> string(4) "2231" [1]=> string(4) "2222" }