PHP : Ejemplo carro de ventas

Que tal muchachos ¡

Estaba checando mis documentos y encontré este documento que puede ser útil, asi que léanlo.

Intentaremos realizar un carrito de ventas, ya que es una práctica muy pedida en algunas materias por ejemplo programación web.

Lo que necesitaremos en este tutorial será lo siguiente: servidor php, mysql y notepad++(también puede usarse el dreamwebas),para fines prácticos se recomienda utilizar el wamp.

Empezaremos con la creación de una base de datos en mysql para dar de alta nuestros productos

create data base cVenta;

use cVenta

create table productos(

cveProducto varchar(20) not null;

nProducto varchar(100) not null;

categoria varchar(100) not null;

existencia int not null;

imagen varchar(100)

);

Ahora procedemos a crear el script en php para poder dar de alta nuestros productos, lo primero que crearemos es un formulario para ingresar los datos.

Los datos en un formulario se envía mediante el método indicado en el atributo METHOD de la etiqueta form, los dos métodos posibles son GET y POST. Lo habitual es usar el método POST.

Si elegimos GET, todas las variables se enviarán por la dirección html , es decir, que serian visibles para nuestros usuarios en su barra de direcciones, ejemplo:
http://belzebu.com/index.php?id=1&nombre=crema

Esto, para envío de formularios, no es lo normal pues estamos mostrando todos los datos del envío y puede ser muchísima información, y estos talves sean confidenciales. Por todo lo anterior usaremos el método POST.

Este método consiste, básicamente en enviar las variables de forma “oculta” para que nadie pueda ver los datos que ha enviado al pulsar el botón de envío de formulario.

Recomiendo crear el formulario con tablas ya que da un acabado estético, lo cual le da mas presentación.

<html>

<title>Formulario de alta de productos</title>

<form action=”” method=”post” enctype=”multipart/form-data”  name=”insertar”>

<center>

<table width=”40%”>

<tr>

<td>ID del producto</td>

<td><input name=”id”></td>

</tr>

<tr>

<td>Nombre</td>

<td><input type=”text” id=”nProducto”></td>

</tr>

<tr>

<td>Categoria</td>

<td><input name=”categoria”></td>

</tr>

<tr>

<td>Existencia</td>

<td><input type=”text” id=”Existencia”></td>

</tr>

<tr>

<td>Foto del producto</td>

<td><label>

<input name=”imagen”>

</label></td>

</tr>

<tr>

<td>&nbsp;</td>

<td><input type=”submit” value=”Enviar”>

</td>

</tr>

</table>

</center>

</form>

</html>

Despues de crear la base procedemos a crear nuestro archivo de coneccion, en este caso yo lo llamaré  conexionBase.php, con el cual nos enlazaremos y manipularemos la base de datos.

<?php

//db es el nombre de nuestra conección

//mysql_connect es donde especificamos servidor usuario y contrasena

//también puede especificarse el puerto,aunque por lo general se utiliza el default

$db = mysql_connect(“localhost”, “root”, “”) or die(“No se puede conectar a la base de datos(mySQL).”);

if(!$db)

die(“no existe la base de datos”);

if(!mysql_select_db(“cventa”,$db))

die(“No hay base de datos seleccionada.”);

?>

Ahora vamos a crear una pagina en php que llamaremos agregarRegistro.php,la cual se encargará de procesar el registro, vefiricar que sea correcto y agregarlo a la base de datos. Si observamos la línea del action de nuestro formulario, notaremos que este apunta a la página que vamos a crear.

Al dar de alta nuestros registros pueden pasar multiples anomalías, por ejemplo : que intentemos ingresar letras donde solo van números, fechas erróneas,etc. Para evitar inconsistencias utilizaremos validaciones, las cuales nos ayudarán a controlar los posibles errores que se nos puedan presentar.

<?php

//aqui verificamos si se ha realizo el post ya que podrian pasar los datos

if ($_POST)

{

$id=$_POST[“id”];//jalamos las variables del post realizado con $_POST[]

$nombre=$_POST[“nProducto”];

$categoria=$_POST[“categoria”];

$existencia=$_POST[“Existencia”];

if($id==””)//verificamos que no estén vacias las variables

{

echo “<script>alert(‘Necesita ingresar un ID al producto’)</script>”;//utilizamos javaScript para mandar un mensaje

echo “<html><head></head>”.                                          //y utilizamos el history.back() para que

“<body onload=\”javascript:history.back()\”>”.          //en caso de que halla un error regrese al formulario pero con datos

“</body></html>”;

}

if($nombre ==””)

{

echo “<script>alert(‘Necesita ingresar un nombre al producto’)</script>”;

echo “<html><head></head>”.

“<body onload=\”javascript:history.back()\”>”.

“</body></html>”;

}

if($categoria==””)

{

echo “<script>alert(‘Necesita ingresar una categoria al producto’)</script>”;

echo “<html><head></head>”.

“<body onload=\”javascript:history.back()\”>”.

“</body></html>”;

}

if($existencia==””)

{

echo “<script>alert(‘Necesita ingresar cuantos productos ahi en existencia’)</script>”;

echo “<html><head></head>”.

“<body onload=\”javascript:history.back()\”>”.

“</body></html>”;

}

if(is_numeric($existencia))//en el caso de existencia es necesario utilizar un is_numeric,

//                            ya que la existencia es un numero y el usuario puede ser bien

//                            bien pendejo y ponerles letras u otro caracter que no sea

//                             el requerido.

{

}

else

{

echo “<script>alert(‘Necesita ingresar cuantos productos ahi en existencia, ejemplo : 10′)</script>”;

echo “<html><head></head>”.

“<body onload=\”javascript:history.back()\”>”.

“</body></html>”;

}

include(“conexionBase.php”);//se manda a traer la coneccion

$foto=$_FILES[“imagen”];

$insert=”insert into productos values(‘$id’,’$nombre’,’$categoria’,’$existencia’,’$foto’)”;//se insertan los datos;

mysql_query($insert) or die(mysql_error());//aqui se insertan los datos en caso de error manda un aviso

echo “<script>alert(‘Se han agregado los datos’)</script>”;//se regresa a la pagina de insercion de datos

echo “<html>

<head>

<META HTTP-EQUIV=’Refresh’CONTENT=’0; URL=index.html’>

</head>

<body>

</body>

</html>”;

}

else

{

echo “<script>alert(‘Necesita ingresar datos’)</script>”;

echo “<html>

<head>

<META HTTP-EQUIV=’Refresh’CONTENT=’0; URL=index.html’>

</head>

<body>

</body>

</html>”;

}

?>

  • http://sqleros.com.ar zegnhabi

    Emn… de esto creo que nada más esta el primer tomo de este post!

  • jumipe

    we pero en si de que trata el puto carro de compras, insertar a la base los productos uno por uno que vas hechando al carrito o llenar una lista y despues guardar toda esa lista en la base no entiendo la logica :S

  • luda

    Jajaja lo voy a terminar :P y este solo es para llenar la base con los productos