Ver Mensaje Individual
  #9 (permalink)  
Antiguo 30/01/2010, 16:20
Avatar de HiToGoRoShi
HiToGoRoShi
 
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años, 7 meses
Puntos: 31
Respuesta: Ayuda con carrito

ahi va el codigo

Código PHP:
Ver original
  1. <?php
  2. ob_start("ob_gzhandler");
  3. //error_reporting(E_ALL);
  4. //@ini_set('display_errors', '1');
  5. //con session_start() creamos la sesión si no existe o la retomamos si ya ha sido creada
  6. extract($_REQUEST);
  7. //la función extract toma las claves de una matriz asoiativa y las convierte en nombres de variable,
  8. //asignándoles a esas variables valores iguales a los que tenía asociados en la matriz. Es decir, convierte a $_GET['id'] en $id,
  9. //sin que tengamos que tomarnos el trabajo de escribir $id=$_GET['ID'];
  10. include("../db.php");
  11. $link=Conectarse();
  12. //incluímos la conexión a nuestra base de datos
  13. if(!isset($cantidad)){$cantidad=1;}
  14. //Como también vamos a usar este archivo para actualizar las cantidades,
  15. //hacemos que cuando la misma no esté indicada sea igual a 1
  16. $qry=mysql_query("select * from catalogo where id='".$id."'",$link);
  17. $row=mysql_fetch_array($qry);
  18. //Si ya hemos introducido algún producto en el carro lo tendremos guardado temporalmente
  19. //en el array superglobal $_SESSION['carro'], de manera que rescatamos los valores de dicho array
  20. //y se los asignamos a la variable $carro, previa comprobación con isset de que $_SESSION['carro']
  21. //ya haya sido definida
  22. if(isset($_SESSION['carro']))
  23. $carro=$_SESSION['carro'];
  24. //Ahora introducimos el nuevo producto en la matriz $carro, utilizando como índice el id del producto
  25. //en cuestión, encriptado con md5. Utilizamos md5 porque genera un valor alfanumérico que luego,
  26. //cuando busquemos un producto en particular dentro de la matriz, no podrá ser confundido con la posición
  27. //que ocupa dentro de dicha matriz, como podría ocurrir si fuera sólo numérico.
  28. //Cabe aclarar que si el producto ya había sido agregado antes, los nuevos valores que le asignemos reemplazarán
  29. //a los viejos.
  30. //Al mismo tiempo, y no porque sea estrictamente necesario sino a modo de ejemplo, guardamos más de un valor
  31. //en la variable $carro, valiéndonos de nuevo de la herramienta array.
  32. $carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cantidad,'producto'=>$row['producto'],'precio'=>$row['precio'],'id'=>$id);
  33. //Ahora dentro de la sesión ($_SESSION['carro']) tenemos sólo los valores que teníamos (si es que teníamos alguno) antes de ingresar
  34. //a esta página y en la variable $carro tenemos esos mismos valores más el que acabamos de sumar. De manera que
  35. //tenemos que actualizar (reemplazar) la variable de sesión por la variable $carro.
  36. $_SESSION['carro']=$carro;
  37. //Y volvemos a nuestro catálogo de artículos. La cadena SID representa al identificador de la sesión, que, dependiendo
  38. //de la configuración del servidor y de si el usuario tiene o no activadas las cookies puede no ser necesario pasarla por la url.
  39. //Pero para que nuestro carro funcione, independientemente de esos factores, conviene escribirla siempre.
  40. header("Location:catalogo.php?".SID);
  41. ?>