You are on page 1of 8

<? /* shoppingcart.php * * */ if(!$session && !

$scid) { $session = md5(uniqid(rand())); SetCookie("scid", "$session", time() + 14400); } /* last number is expiration time in seconds, 14400 sec = 4 hrs */ class Cart { function check_item($table, $session, $product) { $query = "SELECT * FROM $table WHERE session='$session' AND product='$product' "; $result = mysql_query($query); if(!$result) { return 0; } $numRows = mysql_num_rows($result); if($numRows == 0) { return 0; } else { $row = mysql_fetch_object($result); return $row->quantity; } } function add_item($table, $session, $product, $quantity) { $qty = $this->check_item($table, $session, $product); if($qty == 0) { $query = "INSERT INTO $table (session, product, quantity) VALUES "; $query .= "('$session', '$product', '$quantity') "; mysql_query($query); } else { $quantity += $qty; $query = "UPDATE $table SET quantity='$quantity' WHERE session='$session' AND "; $query .= "product='$product' "; mysql_query($query); } }

function delete_item($table, $session, $product) { $query = "DELETE FROM $table WHERE session='$session' AND product='$product' "; mysql_query($query); } function modify_quantity($table, $session, $product, $quantity) { $query = "UPDATE $table SET quantity='$quantity' WHERE session='$session' "; $query .= "AND product='$product' "; mysql_query($query); } function clear_cart($table, $session) { $query = "DELETE FROM $table WHERE session='$session' "; mysql_query($query); } function cart_total($table, $session) { $query = "SELECT * FROM $table WHERE session='$session' "; $result = mysql_query($query); if(mysql_num_rows($result) > 0) { while($row = mysql_fetch_object($result)) { $query = "SELECT price FROM inventory WHERE product='$row>product' "; $invResult = mysql_query($query); $row_price = mysql_fetch_object($invResult); $total += ($row_price->price * $row->quantity); } } return $total; } function display_contents($table, $session) { $count = 0; $query = "SELECT * FROM $table WHERE session='$session' ORDER BY id "; $result = mysql_query($query); while($row = mysql_fetch_object($result)) { $query = "SELECT * FROM inventory WHERE product='$row>product' "; $result_inv = mysql_query($query); $row_inventory = mysql_fetch_object($result_inv); $contents["product"][$count] = $row_inventory->product; $contents["price"][$count] = $row_inventory->price;

$contents["quantity"][$count] = $row->quantity; $contents["total"][$count] = ($row_inventory->price * $row>quantity); $contents["description"][$count] = $row_inventory>description; $count++; } $total = $this->cart_total($table, $session); $contents["final"] = $total; return $contents; } function num_items($table, $session) { $query = "SELECT * FROM $table WHERE session='$session' "; $result = mysql_query($query); $num_rows = mysql_num_rows($result); return $num_rows; } function quant_items($table, $session) { $quant = 0; $query = "SELECT * FROM $table WHERE session='$session' "; $result = mysql_query($query); while($row = mysql_fetch_object($result)) { $quant += $row->quantity; } return $quant; } } ?> /* This part contains a description of how to create the tables on your mysql server. # MySQL dump 6.0 # # Host: localhost Database: kmartShopper #-------------------------------------------------------# Server version 3.22.25 # # Table structure for table 'inventory' # CREATE TABLE inventory ( product tinytext NOT NULL, quantity tinytext NOT NULL,

id int(4) DEFAULT '0' NOT NULL auto_increment, description tinytext NOT NULL, price float(10,2) DEFAULT '0.00' NOT NULL, category char(1) DEFAULT '' NOT NULL, KEY id (id), PRIMARY KEY (id), KEY price (price) ); # # Table structure for table 'shopping' # CREATE TABLE shopping ( session tinytext NOT NULL, product tinytext NOT NULL, quantity tinytext NOT NULL, card tinytext NOT NULL, id int(4) DEFAULT '0' NOT NULL auto_increment, KEY id (id), PRIMARY KEY (id) ); */

Ejemplo <? include("shoppingcart.php"); $cart = new Cart; $mysql_link = mysql_connect("localhost", "wwwrun", ""); $mysql_select_db("kmartShopper", $mysql_link) /* heh, use whatever database name you put the 2 tables under in place of kmartShopper */ ?> /* call functions like $cart->add_item and such, see the code. */

Ayuda con carrito de compras en php en: 18 Mayo 2010, 22:27


hola amigos, puede que parezca noob el tema pero la verdad es que soy uno xD la cosa es que estoy tratando de hacer un carrito de compras con php y encontre muchos ejemplos buscando en google.. el problema que ninguno me dice o me da la pauta para poder enviar los datos que estan en el carrito de compra a mi correo que es lo que ando buscando index.php Cdigo: encontre uno en particular que me gusto por sencillo, a continuacion se los pongo

<? include("lib_carrito.php"); ?> <html>

<head> <title>Trabajando con el carrito</title> </head> <body> <a href="mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80">Silla modelo jupiter 80 euros</a> <br> <br> <a href="mete_producto.php?id=16&nombre=mesa+camilla+oferta&precio=29">Mesa camilla en oferta 29 euros</a> <br> <br> <a href="mete_producto.php?id=18&nombre=Silla+oficina&precio=102">Silla oficina 102 euros</a> <br> <br> <a href="mete_producto.php?id=98&nombre=Aparador+cocina+blanco&precio=200">Aparador cocina blanco 200 euros</a> <br> <br> <br> - <a href="ver_carrito.php">Ver carrito</a> </body> </html>
lib_carrito.php Cdigo:

<? 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=1 cellpadding="3"> <tr> <td><b>Nombre producto</b></td> <td><b>Precio</b></td> <td>&nbsp;</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><a href='eliminar_producto.php?linea=$i'>Eliminar producto</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>&nbsp;</td></tr>"; //total ms IVA echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 1.16 . "</b></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; } } //inicio la sesin session_start(); //si no esta creado el objeto carrito en la sesion, lo creo if (!isset($_SESSION["ocarrito"])){ $_SESSION["ocarrito"] = new carrito(); } ?>
http://foro.elhacker.net/php/ayuda_con_carrito_de_compras_en_php-t294014.0.html#ixzz1PCcWGtMC

domingo, marzo 06, 2011


PHP - CARRITO DE COMPRAS PARTE I - CREACIN DE LA BASE DE DATOS
4:15 PM HENRY WONG 4 COMENTARIOS

"Si usa algn cdigo del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y tambin comentenos que tal les pareci el tutorial"

1. Entorno
NetBeans IDE 6.9.1 WampServer 2.1.

y y

2. Introduccin
En el siguiente tutorial vamos a desarrollar un carrito de compras o lo que seria un sistema de ventas usando el lenguaje de programacin PHP, como base de datos vamos a usar el MySQL 5.1. y tambien crearemos un reporte en formato excel de las ventas. La base de datos que vamos a crear es una base de datos con fines didcticos, dado que nos faltara crear mas tablas, como la tabla cliente, categora, unidad de medida, etc pero si nos explayamos mucho nos quedara muy largo el tutorial. Ademas en el ejemplo no se explica como disminuir un stock, debido a que eso siempre se les pide a los alumnos universitario que investiguen como hacerlo, pero si quieren una ayudita lo pueden hacer creando Triggers en la base de datos. La aplicacin se desarrollara en un formato web usando el modelo de Para poder ejecutar el MySQL debemos de tener instalador el

Programacin en Capas. WampServer 2.1. en nuestra computadora.

3. Desarrollo
La base de datos tendra las siguientes tablas. Venta, Producto y DetalleVenta

A continuacin les paso el script de creacin de la base de datos

---------

CREADO POR: HENRY JOE WONG URQUIZA FECHA: 24FEB2011 -----------------------------------------------------TUTORIAL DE COMO HACER UN CARRITO DE COMPRAS USANDO EL MODELO VISTA CONTROLADOR Creando la base de datos

CREATE DATABASE IF NOT EXISTS bdtutorial; USE bdtutorial; --- Creando la tabla `detalleventa` -DROP TABLE IF EXISTS `detalleventa`; CREATE TABLE `detalleventa` ( `codigoVenta` int(11) NOT NULL, `codigoProducto` int(11) NOT NULL, `cantidad` decimal(18,2) NOT NULL, `descuento` decimal(18,2) NOT NULL, PRIMARY KEY (`codigoVenta`,`codigoProducto`), KEY `FK_DetalleVenta_Producto` (`codigoProducto`), CONSTRAINT `FK_DetalleVenta_Producto` FOREIGN KEY (`codigoProducto`) REFERENCES `producto` (`codigoProducto`), CONSTRAINT `FK_DetalleVenta_Venta` FOREIGN KEY (`codigoVenta`) REFERENCES `venta` (`codigoVenta`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Creando la tabla `producto` -DROP TABLE IF EXISTS `producto`; CREATE TABLE `producto` ( `codigoProducto` int(11) NOT NULL, `nombre` varchar(100) NOT NULL, `precio` decimal(18,2) NOT NULL, PRIMARY KEY (`codigoProducto`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Creando la tabla venta -DROP TABLE IF EXISTS `venta`; CREATE TABLE `venta` ( `codigoVenta` int(11) NOT NULL, `cliente` varchar(100) NOT NULL,

`fecha` datetime NOT NULL, PRIMARY KEY (`codigoVenta`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

You might also like