SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Reciclando
                       para un                                    DOCUMENTACIÓN DE LA WEBSITE.
                       mejor                                       INFORMÁTICA EMPRESARIAL
                       futuro…




    INSTITUTO TECNOLOGICO DEL VALLE

                                             DE OAXACA
MATERIA: INFORMATICA EMPRESARIAL



PROFESOR: L.I.BENEDICTO SANTIAGO RAMIREZ



INTEGRANTES:

                             -BLANCO HERNANDEZ ANABEL
                             -GIRON REYES LUIS ELIEL
                             -LOPEZ GARCIA ABIGAIL SOCORRO
                             -RODRIGUEZ GASCON ANA
                             -SERNAS JIMENEZ ADAN




  TRABAJO:                                     MANUAL CARRITO DE COMPRA CON PHP

                                                      DE TIENDA VIRTUAL GECKO




Copyright © Gecko 2010 Derechos Reservados                                      Página 1
Reciclando
                       para un                                            DOCUMENTACIÓN DE LA WEBSITE.
                       mejor                                                 INFORMÁTICA EMPRESARIAL
                       futuro…



ARCHIVO CLASE CARRITO

Para poder usar y acceder a las variables de session iniciamos session.

session_start();
session_register('carrito');

Se define la clase.

class Carrito{
    var $salida;
    function Carrito(){
       $this->salida="";
    }



METODO PARA AGREGAR UN NUEVO PRODUCTO AL CARRITO.

Este método recibe el id, nombre, precio y la cantidad del producto que el cliente desea agregar al
carrito.

    function Agregar_al_Carrito($id,$nombre,$precio,$cantidad){
         try
         {
             $productos = $_SESSION['carrito'];
             if($productos!="")
             {
                 $productos[]=array("id"=>"$id", "nombre" =>
"$nombre","precio" => "$precio","cantidad"=>"$cantidad");
             }
             else{
                   $productos = array ( array ("id"=>"$id", "nombre" =>
"$nombre","precio" => "$precio","cantidad"=>"$cantidad"));
             }
             $_SESSION['carrito'] = $productos;
             $this->salida .= "Producto agregado con exito!!";
         }
         catch (Exception $e)
       {
             $this->salida = "Ocurrio un error..." . $e->getMessage();
       }
      return $this->salida;
    }


Primero obtenemos el valor de la variable de sesión ‘carrito’ y lo almacenamos en la variable
‘productos’.

$productos = $_SESSION['carrito'];

Si el valor es diferente de vacio quiere decir que ya existen productos en el carrito así que le
insertamos un nuevo producto, delo contrario creamos un array de arrays y le insertamos la



Copyright © Gecko 2010 Derechos Reservados                                                  Página 2
Reciclando
                       para un                                             DOCUMENTACIÓN DE LA WEBSITE.
                       mejor                                                 INFORMÁTICA EMPRESARIAL
                       futuro…
informacion, la información de cada producto se almacena en un array por lo cual la variable
$productos es un array de arrays, enseguida se muestra la forma en la cual la información se
almacena.


Array
(
    [0] => Array
        (
            [id] => 1abc
            [nombre] => Anotador chico con l�piz
            [precio] => 100
            [cantidad] => 4
        )

    [1] => Array
        (
            [id] => 2abc
            [nombre] => Anotador mediano con l�piz
            [precio] => 150
            [cantidad] => 5
        )

    [2] => Array
        (
            [id] => 3abc
            [nombre] => Anotador grande con l�piz
            [precio] => 200
            [cantidad] => 8
        )

)




Después de insertar el nuevo producto le asignamos el valor de la variable $productos a la
variable de sesión ‘carrito’ con lo cual se actualizara la información de los productos del carrito.

$_SESSION['carrito'] = $productos;

Por ultimo retornamos un mensaje diciendo que se ha agregado al carrito con éxito.

METODO PARA QUITAR UN PRODUCTO DEL CARRITO.

Este método recibe como parámetro el id del producto a quitar.

function Quitar_del_Carrito($id_quitar){
        try
        {
            if($_SESSION['carrito'])
            {
                $productos = $_SESSION['carrito'];
                foreach($productos as $valores)
                {
                    $id = $valores["id"];
                    if($id_quitar != $id)//Si son diferente se copia al temporal
                    {
                        $array_temporal[] = $valores;
                    }
                    /*else
                    {
                        No hace nada
                    }*/
                }
                $productos = $array_temporal;




Copyright © Gecko 2010 Derechos Reservados                                                   Página 3
Reciclando
                       para un                                       DOCUMENTACIÓN DE LA WEBSITE.
                       mejor                                           INFORMÁTICA EMPRESARIAL
                       futuro…
                       $_SESSION['carrito'] = $productos;
                       $this->salida .= "Se ha quitado con exito!!";
                 }
                 else
                 {
                     $this->salida .= "El carrito esta vacio";
                 }
             }
             catch (Exception $e)
         {
              $this->salida = "Ocurrio un error..." . $e->getMessage();
        }
      return $this->salida;
     }



Lo que este método hace algo muy sencillo y se explica enseguida, mediante un ciclo foreach se
recorre el carrito compara si el valor que se ha recibido como parámetro y el que esta almacenado
en el carrito son diferentes se almacena el registro en una variable temporal de lo contrario (son
iguales) el ciclo continua hasta llegar al final y se ignora el que es igual, al llegar al final el carrito se
actualiza asignándosele lo de la variable temporal.

METODO PARA QUITAR UN PRODUCTO DEL CARRITO.

function Mostrar_Carrito(){
        try
        {
            if($_SESSION['carrito'])
            {
                $productos = $_SESSION['carrito'];
                $this->salida .="<h1 class='t_car'>Los productos de su
carrito:</h1>";
                foreach($productos as $valores)
                {
                    $id = $valores["id"];
                    $nombre = $valores["nombre"];
                    $precio = $valores["precio"];
                    $cantidad = $valores["cantidad"];
                        $this->salida .= "<div class='carrito'>
                                            <p>
                                            <span class='etiq'>Clave: </span>" .
$id . "<br />n
                                            <span class='etiq'>Nombre: </span>" .
$nombre . "<br />n
                                            <span class='etiq'>Precio: </span>" .
$precio . "<br />n
                                            <span class='etiq'>Cantidad: </span>"
. $cantidad . "<br />
                                            </p>
                                                 <div class='modificar_car'>

                                                    <a class='edita_carrito'
href="javascript:refrescar('carrito.php?operacion=quitar&id_quitar=$id',
'right_content');">Quitar</a>
                                                    <a class='edita_carrito'
href=''>Modificar</a>
                                                </div>
                                            </div>n";
                }
            }




Copyright © Gecko 2010 Derechos Reservados                                                            Página 4
Reciclando
                     para un                                              DOCUMENTACIÓN DE LA WEBSITE.
                     mejor                                                   INFORMÁTICA EMPRESARIAL
                     futuro…
                 else
                 {
                     $this->salida .= "Sin nada en el carrito";
                 }
             }
             catch (Exception $e)
         {
              $this->salida .= "Ocurrio un error..." . $e->getMessage();
        }
      return $this->salida;
     }
Para mostrar los productos almacenados en el carrito se obtiene el valor de la variable de sesión
‘carrito’, esta información se encuentra estructurada en forma de un arreglo, para acceder a cada
elemento y mostrarlo de manera legible se recorre el arreglo con un ciclo foreach y se obtiene
cada elemento (producto) y se extrae la información de cada posición y se estructura de manera
que el usuario pueda leerla y se retorna la varible $salida, si el carrito no contiene nada solo se
muestra un mensaje diciendo que el carrito esta vacio.


METODO VACIAR EL CARRITO.

function Vaciar_Carrito(){
       try{
            $_SESSION['carrito']="";
            unset($productos);
            $this->salida .= "Borrado con exito!!";
        }
        catch(Exception $e)
        {
            $this->salida .= "Ocurrio un error..." . $e->getMessage();
        }
    return $this->salida;
    }
Lo único que este método realiza es eliminar la variable $productos y a la variable de sesión
‘carrito’ se le asigna “” (vacio).



CLASE COMPLETA.

session_start();
session_register('carrito');

class Carrito{
    var $arreglo_de_id_productos;
    var $salida;
    function Carrito(){
       $this->arreglo_de_id_productos =0;
       $this->salida="";
    }
    function Agregar_al_Carrito($id,$nombre,$precio,$cantidad){
        try
        {
            $productos = $_SESSION['carrito'];
            if($productos!="")
            {
                 $productos[]=array("id"=>"$id", "nombre" => "$nombre","precio" =>




Copyright © Gecko 2010 Derechos Reservados                                                  Página 5
Reciclando
                 para un                                         DOCUMENTACIÓN DE LA WEBSITE.
                 mejor                                             INFORMÁTICA EMPRESARIAL
                 futuro…
"$precio","cantidad"=>"$cantidad");
             }
             else{
                    $productos = array ( array ("id"=>"$id", "nombre" =>
"$nombre","precio" => "$precio","cantidad"=>"$cantidad"));
             }
             $_SESSION['carrito'] = $productos;
             $this->salida .= "Producto agregado con exito!!";
         }
         catch (Exception $e)
       {
               $this->salida = "Ocurrio un error..." . $e->getMessage();
       }
     return $this->salida;
    }
    function Quitar_del_Carrito($id_quitar){
         try
         {
             if($_SESSION['carrito'])
             {
                  $productos = $_SESSION['carrito'];
                  foreach($productos as $valores)
                  {
                       $id = $valores["id"];
                       if($id_quitar != $id)//Si son diferente se copia al temporal
                       {
                           $array_temporal[] = $valores;
                       }
                       /*else
                       {
                           No hace nada
                       }*/
                  }
                  $productos = $array_temporal;
                  $_SESSION['carrito'] = $productos;
                  $this->salida .= "Se ha quitado con exito!!";
             }
             else
             {
                  $this->salida .= "El carrito esta vacio";
             }
         }
         catch (Exception $e)
       {
               $this->salida = "Ocurrio un error..." . $e->getMessage();
       }
     return $this->salida;
    }
    function Mostrar_Carrito(){
         try
         {
             if($_SESSION['carrito'])
             {
                  $productos = $_SESSION['carrito'];
                  $this->salida .="<h1 class='t_car'>Los productos de su
carrito:</h1>";
                  foreach($productos as $valores)
                  {
                       $id = $valores["id"];
                       $nombre = $valores["nombre"];
                       $precio = $valores["precio"];
                       $cantidad = $valores["cantidad"];
                           $this->salida .= "<div class='carrito'>




Copyright © Gecko 2010 Derechos Reservados                                   Página 6
Reciclando
                       para un                                           DOCUMENTACIÓN DE LA WEBSITE.
                       mejor                                              INFORMÁTICA EMPRESARIAL
                       futuro…
                                                    <p>
                                                    <span class='etiq'>Clave: </span>" .
$id . "<br />n
                                                    <span class='etiq'>Nombre: </span>" .
$nombre . "<br />n
                                                    <span class='etiq'>Precio: </span>" .
$precio . "<br />n
                                                    <span class='etiq'>Cantidad: </span>"
. $cantidad . "<br />
                                                    </p>
                                                           <div class='modificar_car'>

                                                       <a class='edita_carrito'
href="javascript:refrescar('carrito.php?operacion=quitar&id_quitar=$id',
'right_content');">Quitar</a>
                                                       <a class='edita_carrito'
href=''>Modificar</a>
                                                   </div>
                                               </div>n";
                   }
              }
              else
              {
                   $this->salida .= "Sin nada en el carrito";
              }
         }
         catch (Exception $e)
       {
                $this->salida .= "Ocurrio un error..." . $e->getMessage();
       }
     return $this->salida;
    }
    function Vaciar_Carrito(){
         try{
              $_SESSION['carrito']="";
              unset($productos);
              $this->salida .= "Borrado con exito!!";
         }
         catch(Exception $e)
         {
              $this->salida .= "Ocurrio un error..." . $e->getMessage();
         }
    return $this->salida;
    }



CLASE GECKO.

Mediante el uso de esta Clase podremos separar la parte que se conecta a la base de datos de las
demás funciones de la website.

Definimos la clase.

class Gecko{
    var $conexion;
    var $resultado;

Esta clase cuenta con 4 métodos lo cuales se describen a continuación.




Copyright © Gecko 2010 Derechos Reservados                                               Página 7
Reciclando
                    para un                                       DOCUMENTACIÓN DE LA WEBSITE.
                    mejor                                           INFORMÁTICA EMPRESARIAL
                    futuro…
function     abre_conexion($servidor,$base,$usuario,$contrasena)
function     obten_productos($producto)
function     registra_usuario($nombre_usuario, $password, $nombre,$apellidos,$email)
function     login($usuario)

METODO ABRE CONEXION.

Abre la conexión con la base de datos.

     function abre_conexion($servidor,$base,$usuario,$contrasena)
     {
         $this->conexion= mysql_connect($servidor, $usuario, $contrasena);
         if (!$this->conexion) {
             die("No se puede conectar con el servidor: " . mysql_error());
         }
         else
         {
             mysql_select_db($base);
         }
     }



METODO OBTEN PRODUCTOS.

Este método se conecta a la base de datos y obtiene los productos.

    function obten_productos($producto){
    if ($producto=="")
         $sql = "SELECT id_producto, nombre, precio, caracteristicas, categoria,
imagen FROM productos";
    else
         $sql = "SELECT id_producto, nombre, precio, caracteristicas, categoria,
imagen FROM productos WHERE id_producto = '$producto'";

     $salida="";
     try{
          $this->resultado=mysql_query($sql,$this->conexion);
               if(!$this->resultado)
              throw new Exception("Error en la consulta");
          else
          {
              $salida = $this->resultado;
          }
               }
          catch (Exception $e)
               {
                      $salida = "No hay registros..." . $e->getMessage();
               }

           return $salida;
           mysql_close($this->conexion);
     }



METODO VACIAR REGISTRA USUARIO.

Este método registra un usuario en la tabla usuarios de la base de datos.

     function registra_usuario($nombre_usuario, $password,




Copyright © Gecko 2010 Derechos Reservados                                     Página 8
Reciclando
                para un                                       DOCUMENTACIÓN DE LA WEBSITE.
                mejor                                           INFORMÁTICA EMPRESARIAL
                futuro…
$nombre,$apellidos,$email){
        $sql = "INSERT INTO usuarios
(nombre_usuario,password,nombre,apellidos,correo)VALUES('$nombre_usuario','$passw
ord','$nombre','$apellidos','$email')";
        $salida="";
       try{
            $this->resultado=mysql_query($sql,$this->conexion);
            $afectados = mysql_affected_rows();
            if($afectados!=-1)
            {
                $salida .="Se han actualizado: ". $afectados . "registro(s).";
            }
            else
            {
                $salida .= "No se puedo registrar";
            }
              }
        catch (Exception $e)
              {
                    $salida = "Error: " . $e->getMessage();
              }
        return $salida;
        mysql_close($this->conexion);
    }



METODO LOGIN.

Para poder acceder a los recursos de la WebSite como las promociones y descripción de los
productos se reserva el derecho a los usuarios registrados para lo cual nos sirve este método.

function login($usuario){
       $salida ="";
         try{
              $sql ="SELECT nombre_usuario, password FROM usuarios WHERE
nombre_usuario = '$usuario'";
              $this->resultado= mysql_query($sql,$this->conexion);
              $datos = mysql_fetch_array($this->resultado);
              $salida = $datos;
         }catch(Exception $e)
       {
         $salida = "Error: " . $e->getMessage();
       }
       return $salida;
    }
Recibe el nombre de usuario y consulta en la base de datos, retornando el password, para su
posterior comparación.




Copyright © Gecko 2010 Derechos Reservados                                                   Página 9
Reciclando
                       para un                                          DOCUMENTACIÓN DE LA WEBSITE.
                       mejor                                               INFORMÁTICA EMPRESARIAL
                       futuro…

VALIDACIÓN DE LOS FORMULARIOS MEDIANTE JQUERY

Con ayuda del plugin de validación de formularios del Framework jQuery se imprentaron reglas las
cuales se cargan después de que el documento está listo y las cuales se muestran enseguida.
$(document).ready(
    function(){
         //Validacion del formulario de registro
            $("#frm_registro").validate(
          {
             rules:{
                  usuario:{
                      required: true
                      //remote: "disponibilidad_user.php"
                  },
                  password:{
                      required: true,
                      minlength: 5
                  },
                  password_rpt: {
                      required: true,
                      equalTo: "#password"
                  },
                  nombre:{
                      required: true
                  },
                  apellidos:{
                      required: true
                  },
                  email: {
                      required: true,
                      email: true
                  }
             },
             submitHandler: function(form) {
                  jQuery(form).ajaxSubmit({
                      target: "#right_content"
                  });
             }
       }
         );
         // show a simple loading indicator
               var loader = jQuery('</br><p>Procesando...por favor espere</p><img
src="images/loading6.gif" alt="loading..." />')
                      .appendTo("#proceso")
                      .hide();
               jQuery().ajaxStart(function() {
                      loader.show();
               }).ajaxStop(function() {
                      loader.hide();
               }).ajaxError(function(a, b, e) {
                      throw e;
               });
         $("#login").validate(
         {
             rules:{
                  user:{
                      required: true
                  },
                  pass:{
                      required: true




Copyright © Gecko 2010 Derechos Reservados                                               Página 10
Reciclando
                       para un                                  DOCUMENTACIÓN DE LA WEBSITE.
                       mejor                                      INFORMÁTICA EMPRESARIAL
                       futuro…
                       }
                 },
                 submitHandler: function(form) {
                     jQuery(form).ajaxSubmit({
                         target: "#usuarios"

                       });

                 }
           });

           function inicioEnvio()
           {
               var x=$("#right_content");
               x.html('<img src="images/cargando.gif">');
           }
           function llegadaDatos(datos)
           {
                 $("#right_content").text(datos);
           }
           function problemas()
           {
             $("#right_content").text('Problemas en el servidor.');
           }
           //Validacion del formulario de pedido
           $("#pedido").validate(
           {
               rules:{
                   cantidad:{
                        required: true,
                        digits:true
                   }
               },
                submitHandler:function(form){
                     jQuery(form).ajaxSubmit({
                         target: "#right_content"
                     })
                }

           });




Copyright © Gecko 2010 Derechos Reservados                                   Página 11
Reciclando
                       para un               DOCUMENTACIÓN DE LA WEBSITE.
                       mejor                  INFORMÁTICA EMPRESARIAL
                       futuro…

MODELO RELACIONAL DE LA BASE DE DATOS




Copyright © Gecko 2010 Derechos Reservados                Página 12
Reciclando
                       para un                                             DOCUMENTACIÓN DE LA WEBSITE.
                       mejor                                                INFORMÁTICA EMPRESARIAL
                       futuro…

RECURSOS UTILIZADOS .



                                             PHP
                                             Como lenguaje de programacion web para la creacion
                                             de paguinas web dinamicas, manipulacion de sesiones
                                             y conexión a base de datos

                                             Mysql
                                             Como motor de base de datos



                                             AJAX



                                             jQuery
                                             Framework


                                             CSS
                                             Hojas De Estilo Cascada
                                             librosweb.es




Copyright © Gecko 2010 Derechos Reservados                                               Página 13

Más contenido relacionado

La actualidad más candente

Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchJair Ospino Ardila
 
Modelo de base de datos orientados a objetos
Modelo de base de datos orientados a objetosModelo de base de datos orientados a objetos
Modelo de base de datos orientados a objetosarmin tilano
 
Actividad 1: Mysql.Data.MySqlClient
Actividad 1: Mysql.Data.MySqlClientActividad 1: Mysql.Data.MySqlClient
Actividad 1: Mysql.Data.MySqlClientRIXIO CHOURIO
 
Tipos relaciones access 2010
Tipos relaciones access 2010Tipos relaciones access 2010
Tipos relaciones access 2010julia Asensio
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlCristian Garzon
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosYarquiri Claudio
 
Inserción de datos y selección de datos
Inserción de datos y selección de datosInserción de datos y selección de datos
Inserción de datos y selección de datoscarmen305
 
Cuestionario
CuestionarioCuestionario
CuestionarioJose Nava
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Sergio Sanchez
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dmlGerardo
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosiluijo
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datosLuis Bando
 

La actualidad más candente (20)

Trigger Data Base
Trigger Data BaseTrigger Data Base
Trigger Data Base
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
 
Sentencias sql
Sentencias sqlSentencias sql
Sentencias sql
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
 
Modelo de base de datos orientados a objetos
Modelo de base de datos orientados a objetosModelo de base de datos orientados a objetos
Modelo de base de datos orientados a objetos
 
Joins in SQL
Joins in SQLJoins in SQL
Joins in SQL
 
Actividad 1: Mysql.Data.MySqlClient
Actividad 1: Mysql.Data.MySqlClientActividad 1: Mysql.Data.MySqlClient
Actividad 1: Mysql.Data.MySqlClient
 
Tipos relaciones access 2010
Tipos relaciones access 2010Tipos relaciones access 2010
Tipos relaciones access 2010
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sql
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Inserción de datos y selección de datos
Inserción de datos y selección de datosInserción de datos y selección de datos
Inserción de datos y selección de datos
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datos
 
Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"
 
VISTAS
VISTASVISTAS
VISTAS
 
MODELO DE BASE DE DATOS
MODELO DE BASE DE DATOSMODELO DE BASE DE DATOS
MODELO DE BASE DE DATOS
 

Similar a M. carrito d compra en phpfinal

Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencapaulcuenca9
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con phpFer Nando
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladoresPedro Cambra
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryJavier P.
 
Customizer: configurando un sitio en tiempo real
Customizer: configurando un sitio en tiempo realCustomizer: configurando un sitio en tiempo real
Customizer: configurando un sitio en tiempo realwpargentina
 
Sacale partido al personalizador
Sacale partido al personalizadorSacale partido al personalizador
Sacale partido al personalizadorPablo López Mestre
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysqlI LG
 
Wp config.php
Wp config.phpWp config.php
Wp config.phpgregozz
 
Inf 19 (consulya y borrado de datos)
Inf 19 (consulya y borrado de datos)Inf 19 (consulya y borrado de datos)
Inf 19 (consulya y borrado de datos)Carlos Guzmán
 

Similar a M. carrito d compra en phpfinal (20)

Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
I2 u4
I2 u4I2 u4
I2 u4
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
Php2
Php2 Php2
Php2
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladores
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 
Customizer: configurando un sitio en tiempo real
Customizer: configurando un sitio en tiempo realCustomizer: configurando un sitio en tiempo real
Customizer: configurando un sitio en tiempo real
 
Sacale partido al personalizador
Sacale partido al personalizadorSacale partido al personalizador
Sacale partido al personalizador
 
Código Bonito con PHP
Código Bonito con PHPCódigo Bonito con PHP
Código Bonito con PHP
 
Zen AJAX - Programador PHP
Zen AJAX - Programador PHPZen AJAX - Programador PHP
Zen AJAX - Programador PHP
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
10 131104193243-phpapp02 (1)
10 131104193243-phpapp02 (1)10 131104193243-phpapp02 (1)
10 131104193243-phpapp02 (1)
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysql
 
10 131104193243-phpapp02
10 131104193243-phpapp0210 131104193243-phpapp02
10 131104193243-phpapp02
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Wp config.php
Wp config.phpWp config.php
Wp config.php
 
Inf 19 (consulya y borrado de datos)
Inf 19 (consulya y borrado de datos)Inf 19 (consulya y borrado de datos)
Inf 19 (consulya y borrado de datos)
 

M. carrito d compra en phpfinal

  • 1. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… INSTITUTO TECNOLOGICO DEL VALLE DE OAXACA MATERIA: INFORMATICA EMPRESARIAL PROFESOR: L.I.BENEDICTO SANTIAGO RAMIREZ INTEGRANTES: -BLANCO HERNANDEZ ANABEL -GIRON REYES LUIS ELIEL -LOPEZ GARCIA ABIGAIL SOCORRO -RODRIGUEZ GASCON ANA -SERNAS JIMENEZ ADAN TRABAJO: MANUAL CARRITO DE COMPRA CON PHP DE TIENDA VIRTUAL GECKO Copyright © Gecko 2010 Derechos Reservados Página 1
  • 2. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… ARCHIVO CLASE CARRITO Para poder usar y acceder a las variables de session iniciamos session. session_start(); session_register('carrito'); Se define la clase. class Carrito{ var $salida; function Carrito(){ $this->salida=""; } METODO PARA AGREGAR UN NUEVO PRODUCTO AL CARRITO. Este método recibe el id, nombre, precio y la cantidad del producto que el cliente desea agregar al carrito. function Agregar_al_Carrito($id,$nombre,$precio,$cantidad){ try { $productos = $_SESSION['carrito']; if($productos!="") { $productos[]=array("id"=>"$id", "nombre" => "$nombre","precio" => "$precio","cantidad"=>"$cantidad"); } else{ $productos = array ( array ("id"=>"$id", "nombre" => "$nombre","precio" => "$precio","cantidad"=>"$cantidad")); } $_SESSION['carrito'] = $productos; $this->salida .= "Producto agregado con exito!!"; } catch (Exception $e) { $this->salida = "Ocurrio un error..." . $e->getMessage(); } return $this->salida; } Primero obtenemos el valor de la variable de sesión ‘carrito’ y lo almacenamos en la variable ‘productos’. $productos = $_SESSION['carrito']; Si el valor es diferente de vacio quiere decir que ya existen productos en el carrito así que le insertamos un nuevo producto, delo contrario creamos un array de arrays y le insertamos la Copyright © Gecko 2010 Derechos Reservados Página 2
  • 3. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… informacion, la información de cada producto se almacena en un array por lo cual la variable $productos es un array de arrays, enseguida se muestra la forma en la cual la información se almacena. Array ( [0] => Array ( [id] => 1abc [nombre] => Anotador chico con l�piz [precio] => 100 [cantidad] => 4 ) [1] => Array ( [id] => 2abc [nombre] => Anotador mediano con l�piz [precio] => 150 [cantidad] => 5 ) [2] => Array ( [id] => 3abc [nombre] => Anotador grande con l�piz [precio] => 200 [cantidad] => 8 ) ) Después de insertar el nuevo producto le asignamos el valor de la variable $productos a la variable de sesión ‘carrito’ con lo cual se actualizara la información de los productos del carrito. $_SESSION['carrito'] = $productos; Por ultimo retornamos un mensaje diciendo que se ha agregado al carrito con éxito. METODO PARA QUITAR UN PRODUCTO DEL CARRITO. Este método recibe como parámetro el id del producto a quitar. function Quitar_del_Carrito($id_quitar){ try { if($_SESSION['carrito']) { $productos = $_SESSION['carrito']; foreach($productos as $valores) { $id = $valores["id"]; if($id_quitar != $id)//Si son diferente se copia al temporal { $array_temporal[] = $valores; } /*else { No hace nada }*/ } $productos = $array_temporal; Copyright © Gecko 2010 Derechos Reservados Página 3
  • 4. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… $_SESSION['carrito'] = $productos; $this->salida .= "Se ha quitado con exito!!"; } else { $this->salida .= "El carrito esta vacio"; } } catch (Exception $e) { $this->salida = "Ocurrio un error..." . $e->getMessage(); } return $this->salida; } Lo que este método hace algo muy sencillo y se explica enseguida, mediante un ciclo foreach se recorre el carrito compara si el valor que se ha recibido como parámetro y el que esta almacenado en el carrito son diferentes se almacena el registro en una variable temporal de lo contrario (son iguales) el ciclo continua hasta llegar al final y se ignora el que es igual, al llegar al final el carrito se actualiza asignándosele lo de la variable temporal. METODO PARA QUITAR UN PRODUCTO DEL CARRITO. function Mostrar_Carrito(){ try { if($_SESSION['carrito']) { $productos = $_SESSION['carrito']; $this->salida .="<h1 class='t_car'>Los productos de su carrito:</h1>"; foreach($productos as $valores) { $id = $valores["id"]; $nombre = $valores["nombre"]; $precio = $valores["precio"]; $cantidad = $valores["cantidad"]; $this->salida .= "<div class='carrito'> <p> <span class='etiq'>Clave: </span>" . $id . "<br />n <span class='etiq'>Nombre: </span>" . $nombre . "<br />n <span class='etiq'>Precio: </span>" . $precio . "<br />n <span class='etiq'>Cantidad: </span>" . $cantidad . "<br /> </p> <div class='modificar_car'> <a class='edita_carrito' href="javascript:refrescar('carrito.php?operacion=quitar&id_quitar=$id', 'right_content');">Quitar</a> <a class='edita_carrito' href=''>Modificar</a> </div> </div>n"; } } Copyright © Gecko 2010 Derechos Reservados Página 4
  • 5. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… else { $this->salida .= "Sin nada en el carrito"; } } catch (Exception $e) { $this->salida .= "Ocurrio un error..." . $e->getMessage(); } return $this->salida; } Para mostrar los productos almacenados en el carrito se obtiene el valor de la variable de sesión ‘carrito’, esta información se encuentra estructurada en forma de un arreglo, para acceder a cada elemento y mostrarlo de manera legible se recorre el arreglo con un ciclo foreach y se obtiene cada elemento (producto) y se extrae la información de cada posición y se estructura de manera que el usuario pueda leerla y se retorna la varible $salida, si el carrito no contiene nada solo se muestra un mensaje diciendo que el carrito esta vacio. METODO VACIAR EL CARRITO. function Vaciar_Carrito(){ try{ $_SESSION['carrito']=""; unset($productos); $this->salida .= "Borrado con exito!!"; } catch(Exception $e) { $this->salida .= "Ocurrio un error..." . $e->getMessage(); } return $this->salida; } Lo único que este método realiza es eliminar la variable $productos y a la variable de sesión ‘carrito’ se le asigna “” (vacio). CLASE COMPLETA. session_start(); session_register('carrito'); class Carrito{ var $arreglo_de_id_productos; var $salida; function Carrito(){ $this->arreglo_de_id_productos =0; $this->salida=""; } function Agregar_al_Carrito($id,$nombre,$precio,$cantidad){ try { $productos = $_SESSION['carrito']; if($productos!="") { $productos[]=array("id"=>"$id", "nombre" => "$nombre","precio" => Copyright © Gecko 2010 Derechos Reservados Página 5
  • 6. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… "$precio","cantidad"=>"$cantidad"); } else{ $productos = array ( array ("id"=>"$id", "nombre" => "$nombre","precio" => "$precio","cantidad"=>"$cantidad")); } $_SESSION['carrito'] = $productos; $this->salida .= "Producto agregado con exito!!"; } catch (Exception $e) { $this->salida = "Ocurrio un error..." . $e->getMessage(); } return $this->salida; } function Quitar_del_Carrito($id_quitar){ try { if($_SESSION['carrito']) { $productos = $_SESSION['carrito']; foreach($productos as $valores) { $id = $valores["id"]; if($id_quitar != $id)//Si son diferente se copia al temporal { $array_temporal[] = $valores; } /*else { No hace nada }*/ } $productos = $array_temporal; $_SESSION['carrito'] = $productos; $this->salida .= "Se ha quitado con exito!!"; } else { $this->salida .= "El carrito esta vacio"; } } catch (Exception $e) { $this->salida = "Ocurrio un error..." . $e->getMessage(); } return $this->salida; } function Mostrar_Carrito(){ try { if($_SESSION['carrito']) { $productos = $_SESSION['carrito']; $this->salida .="<h1 class='t_car'>Los productos de su carrito:</h1>"; foreach($productos as $valores) { $id = $valores["id"]; $nombre = $valores["nombre"]; $precio = $valores["precio"]; $cantidad = $valores["cantidad"]; $this->salida .= "<div class='carrito'> Copyright © Gecko 2010 Derechos Reservados Página 6
  • 7. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… <p> <span class='etiq'>Clave: </span>" . $id . "<br />n <span class='etiq'>Nombre: </span>" . $nombre . "<br />n <span class='etiq'>Precio: </span>" . $precio . "<br />n <span class='etiq'>Cantidad: </span>" . $cantidad . "<br /> </p> <div class='modificar_car'> <a class='edita_carrito' href="javascript:refrescar('carrito.php?operacion=quitar&id_quitar=$id', 'right_content');">Quitar</a> <a class='edita_carrito' href=''>Modificar</a> </div> </div>n"; } } else { $this->salida .= "Sin nada en el carrito"; } } catch (Exception $e) { $this->salida .= "Ocurrio un error..." . $e->getMessage(); } return $this->salida; } function Vaciar_Carrito(){ try{ $_SESSION['carrito']=""; unset($productos); $this->salida .= "Borrado con exito!!"; } catch(Exception $e) { $this->salida .= "Ocurrio un error..." . $e->getMessage(); } return $this->salida; } CLASE GECKO. Mediante el uso de esta Clase podremos separar la parte que se conecta a la base de datos de las demás funciones de la website. Definimos la clase. class Gecko{ var $conexion; var $resultado; Esta clase cuenta con 4 métodos lo cuales se describen a continuación. Copyright © Gecko 2010 Derechos Reservados Página 7
  • 8. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… function abre_conexion($servidor,$base,$usuario,$contrasena) function obten_productos($producto) function registra_usuario($nombre_usuario, $password, $nombre,$apellidos,$email) function login($usuario) METODO ABRE CONEXION. Abre la conexión con la base de datos. function abre_conexion($servidor,$base,$usuario,$contrasena) { $this->conexion= mysql_connect($servidor, $usuario, $contrasena); if (!$this->conexion) { die("No se puede conectar con el servidor: " . mysql_error()); } else { mysql_select_db($base); } } METODO OBTEN PRODUCTOS. Este método se conecta a la base de datos y obtiene los productos. function obten_productos($producto){ if ($producto=="") $sql = "SELECT id_producto, nombre, precio, caracteristicas, categoria, imagen FROM productos"; else $sql = "SELECT id_producto, nombre, precio, caracteristicas, categoria, imagen FROM productos WHERE id_producto = '$producto'"; $salida=""; try{ $this->resultado=mysql_query($sql,$this->conexion); if(!$this->resultado) throw new Exception("Error en la consulta"); else { $salida = $this->resultado; } } catch (Exception $e) { $salida = "No hay registros..." . $e->getMessage(); } return $salida; mysql_close($this->conexion); } METODO VACIAR REGISTRA USUARIO. Este método registra un usuario en la tabla usuarios de la base de datos. function registra_usuario($nombre_usuario, $password, Copyright © Gecko 2010 Derechos Reservados Página 8
  • 9. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… $nombre,$apellidos,$email){ $sql = "INSERT INTO usuarios (nombre_usuario,password,nombre,apellidos,correo)VALUES('$nombre_usuario','$passw ord','$nombre','$apellidos','$email')"; $salida=""; try{ $this->resultado=mysql_query($sql,$this->conexion); $afectados = mysql_affected_rows(); if($afectados!=-1) { $salida .="Se han actualizado: ". $afectados . "registro(s)."; } else { $salida .= "No se puedo registrar"; } } catch (Exception $e) { $salida = "Error: " . $e->getMessage(); } return $salida; mysql_close($this->conexion); } METODO LOGIN. Para poder acceder a los recursos de la WebSite como las promociones y descripción de los productos se reserva el derecho a los usuarios registrados para lo cual nos sirve este método. function login($usuario){ $salida =""; try{ $sql ="SELECT nombre_usuario, password FROM usuarios WHERE nombre_usuario = '$usuario'"; $this->resultado= mysql_query($sql,$this->conexion); $datos = mysql_fetch_array($this->resultado); $salida = $datos; }catch(Exception $e) { $salida = "Error: " . $e->getMessage(); } return $salida; } Recibe el nombre de usuario y consulta en la base de datos, retornando el password, para su posterior comparación. Copyright © Gecko 2010 Derechos Reservados Página 9
  • 10. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… VALIDACIÓN DE LOS FORMULARIOS MEDIANTE JQUERY Con ayuda del plugin de validación de formularios del Framework jQuery se imprentaron reglas las cuales se cargan después de que el documento está listo y las cuales se muestran enseguida. $(document).ready( function(){ //Validacion del formulario de registro $("#frm_registro").validate( { rules:{ usuario:{ required: true //remote: "disponibilidad_user.php" }, password:{ required: true, minlength: 5 }, password_rpt: { required: true, equalTo: "#password" }, nombre:{ required: true }, apellidos:{ required: true }, email: { required: true, email: true } }, submitHandler: function(form) { jQuery(form).ajaxSubmit({ target: "#right_content" }); } } ); // show a simple loading indicator var loader = jQuery('</br><p>Procesando...por favor espere</p><img src="images/loading6.gif" alt="loading..." />') .appendTo("#proceso") .hide(); jQuery().ajaxStart(function() { loader.show(); }).ajaxStop(function() { loader.hide(); }).ajaxError(function(a, b, e) { throw e; }); $("#login").validate( { rules:{ user:{ required: true }, pass:{ required: true Copyright © Gecko 2010 Derechos Reservados Página 10
  • 11. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… } }, submitHandler: function(form) { jQuery(form).ajaxSubmit({ target: "#usuarios" }); } }); function inicioEnvio() { var x=$("#right_content"); x.html('<img src="images/cargando.gif">'); } function llegadaDatos(datos) { $("#right_content").text(datos); } function problemas() { $("#right_content").text('Problemas en el servidor.'); } //Validacion del formulario de pedido $("#pedido").validate( { rules:{ cantidad:{ required: true, digits:true } }, submitHandler:function(form){ jQuery(form).ajaxSubmit({ target: "#right_content" }) } }); Copyright © Gecko 2010 Derechos Reservados Página 11
  • 12. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… MODELO RELACIONAL DE LA BASE DE DATOS Copyright © Gecko 2010 Derechos Reservados Página 12
  • 13. Reciclando para un DOCUMENTACIÓN DE LA WEBSITE. mejor INFORMÁTICA EMPRESARIAL futuro… RECURSOS UTILIZADOS . PHP Como lenguaje de programacion web para la creacion de paguinas web dinamicas, manipulacion de sesiones y conexión a base de datos Mysql Como motor de base de datos AJAX jQuery Framework CSS Hojas De Estilo Cascada librosweb.es Copyright © Gecko 2010 Derechos Reservados Página 13