kilobyte, probe el software y la verdad q es increible, te facilita horas de trabajo. Aunque no hay nada como crear uno sus propias aplicaciones, a veces no esta mal aceptar un poco de ayuda.
Y como muestra de ésto, orgullosamente les comento q acabo de terminar la idea basica del carrito (si, lo hice yo solo... bueno, con los aportes de lado2mx, Cluster y kilobyte
Gracias, por cierto).
Les cuento q es un carrito hiper basico, consta de un array bidimensional, el cual contiene una matriz "Producto" y otra matriz "Cantidad". Las posiciones se corresponden, es decir si un producto esta en la posicion 87 del array "Producto", entonces en la posicion 87 del array "Cantidad" se encuentra la cantidad de unidades a comprar; asi se maneja.
Bueno, la idea es q lean el codigo, lo usen, lo modfiquen y apreciaria mas q nada q lo mejoren y lo vuelvan a postear, o cualkier idea q contribuya a esto. Mi manejo de arrays es bastante torpe, asi q quizas puedan aportar mas en esa area.
Aqui se los dejo, plenamente comentado. Vale aclarar q a esa pagina se le hace referencia como
Código HTML:
http://www.misitio.com/cart.php?id_prod=Identificador&cant=Cantidad
Código PHP:
<?php
// recupero o comienzo la sesion
session_start();
// tomo el identificador de producto y la cantidad pasados por la url
$id = $_GET["id_prod"];
$cant = $_GET["cant"];
// chekeo la existencia de la variable de sesion "cart"
if (!isset($_SESSION["cart"])) {
// si no existe la creo con los datos obtenidos
$carrito = array("Producto" => array($id), "Cantidad" => array($cant));
$_SESSION["cart"] = &$carrito;
} else {
// de lo contrario la retomo
$carrito = &$_SESSION["cart"];
// ahora chekeo la existencia de dicho producto en el carrito
if (!in_array($id, $carrito["Producto"])) {
// si no existe, simplemente lo agrego al final del array adjuntando el numero de unidades
array_push($carrito["Producto"], $id);
array_push($carrito["Cantidad"], $cant);
// si existe, procedo a aumentar $cant unidades
} else {
// guardo en $find la posicion del producto seleccionado
$find = array_search($id, $carrito["Producto"]);
// seteo $x en 0 para comenzar a contar las posiciones. Recuerden q lo inicializo en 0 pq los elementos de una matriz se comienzan a contar desde cero
$x = 0;
foreach ($carrito["Cantidad"] as $value) {
// por cada elemento del carrito sumo 1 a $x y chekeo si este numero es igual a $find, el cual indica la posicion del producto
if ($x == $find) {
// cuando se cumple la condicion, guardo el valor del array en esa posicion
$element = $value;
}
$x = $x + 1;
}
// con array_splice le digo al script q en el array Cantidad, contenido en $carrito, en la posicion $find, unicamente a ese elemento, lo reemplaze por $element+$cant
array_splice($carrito["Cantidad"], $find, 1, $element+$cant);
}
}
?>
Gracias a todos
AlvAro