Thời gian đăng: 19/4/2016 16:37:03
Trong Các ví dụ phần mềm học PHP nâng cao này , tôi nên Giới thiệu các mọi người Thiết lập hệ thống giao thông giỏ hàng ( shopping cart ) một phần mềm phổ biến rất thường gặp trên các website cung cấp sản phẩm hiện tại. Nó Hầu như được thay thế cho việc mua các đồ dùng , việc tuyển trạch thủ công mà mọi người vẫn thường làm.
Do nội dung và kiến thức của bài này khá dài , cần tôi cần phải thể hiện bài viết này ở 2 phần , để giúp các các anh dễ theo dõi và dễ nắm bắt các tri thức mà tôi đề cập về phần mềm.
Trong bai fhocj này tôi sẽ Làm quen các chúng ta Thiết lập trang hiển thị sản phẩm trong học PHP căn bản.
Đầu tiên , ta khởi tạo bảng CSDL đơn giản như sau
CREATE TABLE `books` (
`id` int( 10 ) unsigned NOT NULL auto_increment ,
`title` varchar( 255 ) NOT NULL ,
`author` varchar( 100 ) NOT NULL ,
`price` int( 30 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
Ở trên là một bảng lưu thông báo của các quyển sách với tên , tác giả , giá tiền tài các quyển sách.
Sau khi đã hoàn thành việc chuẩn bị cơ sở dữ liệu và giao diện , tiếp theo ta phải Viết chương trình trang hiển thị các món hàng trên website , cho phép người dùng tuyển trạch sách khi truy cập.
Để liệt kê danh sách các quyển sách đang có trong database , ta nên kết nối CSDL với thao tác code như sau
$connect=mysql_connect( "localhost" , "root" , "root" )
or die( "Can not connect database" );
mysql_select_db( "shop" , $connect );
?>
sau hết tôi tạo một liên kết cho phép thêm quyển sách đó vào giỏ hàng Với khả năng người mua cảm thấy hài lòng. ( addcart.php cần là trang thêm vào giỏ hàng với tham số là mã của quyển sách ).
Nói đến phần mềm lập trình shopping cart thì ngày nay , trên thị trường tồn tại nhiều thủ pháp code. Có thể dùng chuỗi để lưu giỏ hàng , cũng có xác xuất lưu vào CSDL nháp giỏ hàng của người sử dụng và cũng có xác xuất dùng mảng và session để lưu báo cáo giỏ hàng. Trong phạm vi bài viết này , tôi sẽ làm việc session và mảng để lưu thông tin giỏ hàng
Tại trang addcart.php tôi phải khởi tạo một session và lưu mã quyển sách vào một mảng. Cụ thể là: $_SESSION['cart'][$id]
Với $id là mã quyển sách mà người dụng đã chọn ở trang xem hàng hóa ( index.php ). Mục đích chính của trang addcart này là lưu trữ hoặc toan tính lại số lượng sản phẩm khi mà họ lựa chọn. ( lưu ý rằng số lượng các món hàng ).
Tu hoc lap trinh php 1 vấn đề đặt ra trong trang này , là Thế nào để dễ dàng cảm nhận món hàng người đó đã chọn hay chưa. Chẳng hạn. Lần đầu tôi chọn mua quyển A , sau thời gian ấy tôi quay lại chọn mua tiếp quyển A. Vầy trong giỏ hàng cần ghi nhận số lượng quyền A này là 2. Chứ không thể chỉ lưu là 1 được.
Vậy , bấy giờ ta cần kiểm tra xem. Quyển sách mà ta vừa chọn có tồn tại trong giỏ hàng hay chưa. Với trường hợp có , ta cần tiến hàng lấy số lượng đang có tăng lên 1 chức vụ. Còn Nếu như không , ta phải gán số lượng của chúng là 1.
các chị có thể hiểu addcart chỉ đơn giản là xử lý số lượng hàng hóa và lưu chúng ở dạng mảng mà thôi.
Như vậy tại trang mua sách , ta cũng cần cho khách hàng biết rằng trong giỏ hàng của họ hiện đang có bao nhiêu món hàng. Hoặc Trong trường hợp chưa có món nào , ta cũng nên báo cho họ biết về việc đó.
Vậy khi nào thì giỏ hàng rỗng ?. Đó là khi session của giỏ cơ giới tồn tại Id của quyển sách nào. Cụ thể , $_SESSION['cart'][id]. Khi id không tồn tại trong session này thì cũng là lúc giỏ cơ giới tồn tại.
Vậy trước khi cho hiển thị giỏ hàng , ta sẽ kiểm tra xem có tồn tại id nào trong giỏ hàng hay không. Và vì id lưu ở dạng mảng đa chiều , cần ta nên làm việc vòng lặp duyệt mảng foreach.
foreach( $_SESSION[‘cart'] as $k=>$v )
Với $k cố ý nghĩa tương đương $id quyển sách và $v tương đương là số lượng của quyển sách trong giỏ hàng. Vậy Chẳng hạn tồn tại biến $k , thì tức có nghĩa là trong giỏ hàng có sách. Khi đó ta dùng một biến đã để báo hiệu rằng sách có tồn tại trong giỏ hàng hay không.
Như vậy , trong bài này bạn đã hoàn thành trang xem sách và trang xử lý việc thêm sản phẩm mới vào giỏ hàng Thế nào. Mời các anh đọc tiếp bài sau với Bản năng quản lý , sửa , xóa từng món hàng hoặc cả giỏ hàng trong hệ thống.
|
|