Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/06/2011, 14:30
jordi45
 
Fecha de Ingreso: octubre-2008
Mensajes: 168
Antigüedad: 15 años, 5 meses
Puntos: 2
Sonrisa Meter un objeto en base de datos (avanzado)

He seguido el ejemplo de carrito que está en desarrollo web que está hecho sobre un objeto dentro de una sesión.

Código:
//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>&nbsp;</td><td><b>$suma</b>€</td><td>&nbsp;</td><td>&nbsp;</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;
	}
}
Se muestran los datos del objeto carrito:

He hecho
var_dump( $_SESSION['ocarrito']) de dos registros y sale

Código:
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 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.

Me interesaría insertar en mysql de ese objeto este dato:

["array_id_prod"]=> array(2) { [0]=> string(4) "2231" [1]=> string(4) "2222" }

Última edición por jordi45; 29/06/2011 a las 14:36