
07/03/2018, 06:36
|
 | Colaborador | | Fecha de Ingreso: septiembre-2009 Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 6 meses Puntos: 214 | |
Respuesta: implementar carrito de compras, borrar linea de pedido Hola rafret, no es nada.
En cuanto a tu solicitud, ya que por tu cuenta intentaste
realizar la tarea, corresponderé a tu esfuerzo mostrandote
a lo que me refería con cada punto, así que vamos a ello. Cita:
Iniciado por mortiprogramador 1. En el index haces dos consultas a la base de datos,
cuando puedes hacer solo una
agregando el query de images como una subconsulta a la consulta principal
(además ambos querys traen todos los datos resultantes de las filas,
cuando solo se necesitan algunos campos solamente, es decir, el * es mejor evitarlo)
(este punto aplica para index.php y productos.php)
Código PHP:
Ver original$peticion="SELECT p.id, p.descripcion, p.nombre_productos, p.precio, (SELECT imagen FROM images WHERE id_producto= p.id LIMIT 1) imagen FROM productos p";
Cita:
Iniciado por mortiprogramador 2. Como consecuencia del primer punto, te ahorras el segundo while
Código PHP:
Ver originalecho"<p><strong>Precio: s/ ".$fila["precio"]."</strong><br /></p>"; echo "<img src='images/".$fila["imagen"].".jpg' width=100% /><br />";
Cita:
Iniciado por mortiprogramador 3. En la página de poncarrito.php tienes que enviar el id del producto en el link de eliminar
de cada fila, en caso contrario, al llegar a la página de quitarProducto.php no podrá
realizar la eliminación puesto que no tiene un id al cual buscar para borrar
(Es decir, hacer algo similar a lo que ya tienes en productos.php en la parte de 'Mas información') Ya lo hiciste, genial!
Y ahora viene la parte extensa Cita:
Iniciado por mortiprogramador Puedes dejar de usar la variable de sesión contador
Esto a su vez elimina la necesidad de realizar sumas y restas sobre la variable de sesión contador que se iría
Esto implicaría que simplemente se manejaría la segunda
posición de la variable de sesión productos en vacío (es decir, solo los []) a la hora de
asignar el id del producto que llega
Código PHP:
Ver original $_SESSION['producto'][] = $_GET['p'];
Cita:
Iniciado por mortiprogramador Solo con la variable de sesión
de productos es suficiente para saber cuantos productos hay
(es decir, se haría un count o un sizeof de la variable de sesión productos)
Código PHP:
Ver original$contador = sizeof($_SESSION['producto']); for($i = 0; $i < $contador; $i++)
Cita:
Iniciado por mortiprogramador Obviamente, esto hace necesario entonces buscar en el arreglo de sesión producto
el id del producto a eliminar para quitar la posición
Código PHP:
Ver original// esto borrará el producto como tal de la tabla, así que si no necesitas eso por ahora, dejalo en comentario o quitalo $peticion = 'DELETE FROM productos WHERE id= '.$_GET["prod"]; $existe = array_search($_GET['prod'], $_SESSION['producto']); if($existe) { unset($_SESSION['producto'][$existe]); $_SESSION['producto'] = array_values($_SESSION['producto']); }
Y finalmente, lo que hiciste de borrar es correcto a nivel visual,
pero como bien dices, cuando se recarga vuelve a pintar todo,
eso es porque no has eliminado los ids de productos correspondientes
en la variable de sesión, pero ya va solventado en esta explicación,
así que prueba todo y comentas.
__________________ "Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
Última edición por mortiprogramador; 09/03/2018 a las 07:09 |