Kỹ thuật giỏ hàng trong PHP ĐẠI HỌC SÀI GÒN – KHOA CNTT GV: Tr ần Đình Nghĩa tdnghia1977@gmail.com... Cấu trúc dữ liệu & mô hình hoạt động giỏ hàng Thêm sản phẩm vào giỏ hàng Hiển
Trang 1Kỹ thuật giỏ hàng trong PHP
ĐẠI HỌC SÀI GÒN – KHOA CNTT
GV: Tr ần Đình Nghĩa tdnghia1977@gmail.com
Trang 2 Cấu trúc dữ liệu & mô hình hoạt động giỏ hàng
Thêm sản phẩm vào giỏ hàng
Hiển thị giỏ hàng
Sửa số lượng sản phẩm
Xóa một sản phẩm hay Xóa toàn bộ giỏ hàng
Trang 3 Mỗi khách truy cập website sẽ có 1 session
riêng biệt
Lưu toàn bộ giỏ hàng vào session thông qua
biến mảng cart
M ỗi phần tử của cart sẽ được truy xuất theo
d ạng id ==> value
V ới: id = mã sách, value = số lượng
<?php session_start();
session_register("cart");
?>
Trang 4TR
cart.php
checkout.php delcart.php
Trang 5 Khi khách chọn đưa 1 sản phẩm vào giỏ
hàng
$_SESSION[“cart”] s ẽ được kiểm tra và tạo nếu
chưa có.
N ếu $_SESSION[“cart”][“id”] chưa có:
$_SESSION[“cart”][“id”] =1
N ếu $_SESSION[“cart”][“id”] đã có:
$_SESSION[“cart”][“id”] ++
Trang 6TR
Trang 7 Trước tiên, ta cần kiểm tra giỏ hàng có hàng?
Trang 8TR
Nếu có, ta xây dựng câu lệnh SQL để lấy ra
các sản phẩm có trong giỏ hàng từ CSDL
Trang 9 Hiển thị từng sản phẩm trong giỏ hàng cùng
với số lượng đặt mua của chúng thông qua vòng lặp while
Trang 10TR
Sau vòng lặp, hiển thị tổng tiền giỏ hàng và
các liên kết cần thiết
Trang 11 Số lượng mỗi sản phẩm trong giỏ hàng được
hiển thị bằng mảng TextField có tên qty[]
Khi form trong cart.php được submit (Button
submit có tên submit), các số lượng mới sẽ được chuyển cho chính trang này
Như vậy, vào đầu trang cart.php, cần kiểm
tra nếu đang được submit, ta sẽ cập nhật số lượng mới
Việc cập nhật số lượng mới chỉ đơn giản là
ghi đè số lượng mới vào số lượng cũ Tuy nhiên, nếu số lượng mới = 0, ta sẽ xóa sản
Trang 12TR
Trang 13Xóa m ột sản phẩm hay Xóa toàn bộ giỏ hàng
Xem xét link Xóa tương ứng với từng sản
phẩm hay link Xóa Bỏ Giỏ Hàng trong
cart.php, ta có trang delcart.php như sau:
Trang 14TR
Trang 15Lưu giỏ hàng vào CSDL (checkout.php)
Nếu khách chưa đăng nhập, yêu cầu đăng
nhập bằng cách thông báo và chuyển đến trang login.php
Nếu khách đã đăng nhập, lần lượt thực hiện:
Thêm record m ới vào GioHang với các giá trị:
$_SESSION[matv], ngày hi ện hành, DATHANHTOAN=0
L ấy MaGH mới thêm
L ặp qua từng sản phẩm trong $_SESSION[cart],
L ấy giá của sản phẩm $id
Thêm record m ới vào CTGH với các giá trị: