Làm cách nào để lưu trữ các mặt hàng trong giỏ hàng trong phiên PHP?
Bài đăng này là về Hướng dẫn Giỏ hàng PHP bằng SESSIONS. Trước đây, chúng ta đã học cách xây dựng Giỏ hàng bằng PHP & MySQL nơi chúng ta sử dụng cơ sở dữ liệu MySQL để lưu trữ các sản phẩm được thêm vào giỏ hàng. Lần này, chúng tôi sẽ sử dụng các biến phiên PHP để lưu trữ các sản phẩm được thêm vào giỏ hàng
nội dung
đầu ra cuối cùng
Hướng dẫn Giỏ hàng PHP sử dụng SESSION
Khi kết thúc hướng dẫn này, bạn sẽ đạt được các tính năng sau
- Danh sách sản phẩm có phân trang
- Trang sản phẩm
- Chức năng thêm vào giỏ hàng
- Cập nhật chức năng giỏ hàng
- Xóa sản phẩm khỏi chức năng giỏ hàng
- trang giỏ hàng
- trang thanh toán
- cảm ơn trang
Chuẩn bị cơ sở dữ liệu
Thiết kế cơ sở dữ liệu
Tên cơ sở dữ liệu của chúng tôi sẽ được gọi là “
9“, và chúng tôi sẽ có hai [2] bảng. Hình ảnh dưới đây là một biểu diễn trực quan của các bảng cơ sở dữ liệu của chúng tôi và cách chúng liên quan
Tạo cơ sở dữ liệu
Bắt đầu Apache và MySQL. Nếu bạn đang sử dụng XAMPP như tôi, bạn có thể làm điều đó bằng bảng điều khiển của nó
Khi Apache và MySQL đang chạy, hãy mở PhpMyAdmin của bạn [http. // localhost/phpmyadmin]. Tạo cơ sở dữ liệu mới. Sử dụng “shop_cart_sessions_1” làm tên cơ sở dữ liệu. Nhấp vào nút “Tạo”
Tạo bảng “sản phẩm”
Phần này chúng ta sẽ tạo bảng “products” [dùng PhpMyAdmin] trên cơ sở dữ liệu vừa tạo. Bảng này sẽ lưu trữ hồ sơ sản phẩm
Chạy câu lệnh SQL bằng PhpMyAdmin. Nhấp vào cơ sở dữ liệu “shop_cart_sessions_1”. Nhấp vào tab "SQL". Sao chép câu lệnh SQL bên dưới và dán vào vùng văn bản. Nhấp vào nút "Đi"
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
Tạo bảng “danh mục”
Bảng này sẽ chứa các hình ảnh liên quan đến sản phẩm. Cũng chạy câu lệnh SQL sau trên PhpMyAdmin. Thực hiện theo các bước tương tự chúng tôi đã làm trên bảng "sản phẩm"
CREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
Tải xuống dữ liệu mẫu
Bảng sản phẩm và sản phẩm_hình ảnh sẽ không hoạt động đầy đủ nếu không có dữ liệu mẫu và tệp hình ảnh liên quan. Sử dụng nút sau để tải xuống tệp ZIP
Tải xuống tệp SQL và hình ảnh
Trích xuất và nhập dữ liệu
Sau khi tải về, vui lòng giải nén các tập tin. Nhập tệp SQL bằng PhpMyAdmin
Đặt các tệp hình ảnh vào thư mục “php-shopping-cart-using-sessions-level-1/uploads/images/”. Thư mục đó chưa tồn tại. Làm theo các bước dưới đây để tạo nó
Tạo thư mục “php-shopping-cart-using-sessions-level-1” và mở nó. Đây là thư mục chính của dự án của chúng tôi. Tạo thư mục “uploads” và mở nó. Tạo một thư mục “hình ảnh” và mở nó. Sao chép và dán hình ảnh vào thư mục này
Tệp kết nối cơ sở dữ liệu
Tệp này sẽ được sử dụng để thiết lập kết nối cơ sở dữ liệu. Tạo thư mục “
0” và mở nó. Tạo tập tin “
1” và mở nó. Đặt đoạn mã sau
đầu ra
PhpMyAdmin của chúng ta sẽ giống như hình bên dưới. Một cơ sở dữ liệu với hai bảng
Chúng tôi chưa có đầu ra chương trình thực tế vì chúng tôi chỉ thiết lập cơ sở dữ liệu. Hãy tiếp tục hướng dẫn của chúng tôi bên dưới để đạt được nhiều đầu ra hơn
Tạo các tệp bố cục
Các tệp bố cục chứa mã có thể được sử dụng lại trên mỗi trang web. Giao diện của các trang của chúng tôi sẽ nhất quán nhờ các tệp bố cục đầu trang và chân trang này
Tạo tệp bố cục tiêu đề
Tệp “
2” này sẽ được bao gồm ở phần đầu của các tệp PHP sẽ cần nó. Bằng cách này, chúng tôi sẽ không phải viết cùng một mã tiêu đề mỗi lầnChúng tôi sử dụng khung Bootstrap để làm cho dự án của chúng tôi trông đẹp mắt. Nếu bạn chưa quen với Bootstrap, bạn có thể học từ hướng dẫn Bootstrap của chúng tôi tại đây
Tạo tập tin “
2”. Đặt đoạn mã sau. Nhân tiện, xin lưu ý rằng sau khi chúng tôi đặt mã vào tệp, hãy luôn lưu các thay đổi của bạn. Bạn có thể dùng CTRL+S để lưu lại nếu đang dùng Windows như mìnhMã này chứa biến phiên của chúng tôi sẽ chứa các sản phẩm được thêm vào giỏ hàng. Chúng tôi đặt nó ở đây để chúng tôi không cần phải khởi tạo lại nó trên mỗi trang
Các thẻ tiêu đề chứa mã PHP sẽ làm cho tiêu đề trang của chúng tôi động. Bootstrap CSS và CSS tùy chỉnh của chúng tôi được bao gồm bên trong các thẻ đầu. Thanh điều hướng của chúng tôi nằm bên trong điều hướng. php, chúng tôi sẽ tạo tệp này sau
Tạo tệp bố cục chân trang
“layout_footer này. php” sẽ được bao gồm ở cuối các tệp PHP sẽ cần nó. Bằng cách này, chúng tôi sẽ không phải viết cùng một mã chân trang mỗi lần
Chúng tôi đang sử dụng JavaScript của jQuery và Bootstrap trong tệp bố cục chân trang. jQuery được yêu cầu bởi JavaScript của Bootstrap, cần thiết cho các tính năng như trình đơn thả xuống điều hướng
Tạo một “layout_footer. tập tin php”. Đặt đoạn mã sau
Tạo tệp bố cục điều hướng
Tạo tệp “
4 ”. Đặt đoạn mã sau. Mã này sẽ hiển thị thanh điều hướng với các liên kết menu “Sản phẩm” và “Giỏ hàng”. Nó cũng sẽ hiển thị số lượng sản phẩm được thêm vào giỏ hàng. CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
1Tạo tệp CSS tùy chỉnh
phong tục này. tệp css là nơi đặt các kiểu tùy chỉnh của chúng tôi
- Mở thư mục “
5” - Mở thư mục “
6” - Mở thư mục “
7” - Tạo tập tin “
8” - Đặt đoạn mã sau
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
6đầu ra
Các tệp chúng tôi đã tạo trong phần này được sử dụng trong một tệp PHP khác. Nếu chúng tôi cố chạy các tệp, chúng tôi sẽ không thấy bất kỳ điều gì có ý nghĩa
Nếu bạn sẽ chạy layout_header. php tập tin, nó sẽ trông như thế này
Trang phục, Hải quan. css trông như thế này
điều hướng. php trông như thế này
chân trang. php trống. Hãy xem tiếp phần tiếp theo để xem điều gì đó có ý nghĩa
Sản phẩm trưng bày
Tạo sản phẩm. php
Bây giờ chúng ta sẽ bắt đầu hiển thị các sản phẩm từ cơ sở dữ liệu. Tạo
9 với mã cơ bản sauCREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
8Bao gồm các lớp PHP
Đặt đoạn mã sau vào sau “session_start[];”
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
9Tạo tệp đối tượng “sản phẩm”
Tạo thư mục “
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
10”. Bên trong nó, tạo tệp CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
11 với đoạn mã sauCREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
2Tạo tệp đối tượng “hình ảnh sản phẩm”
Tạo tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
12 bên trong thư mục “CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
10”CREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
0Kết nối với cơ sở dữ liệu
Mở sản phẩm. tập tin php. Thay thế ______114 nhận xét bằng đoạn mã sau.
CREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
1Khởi tạo hành động và phân trang
Đặt đoạn mã sau vào sau đoạn mã trên phần trước
CREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
2Hiển thị thông báo dựa trên hành động
Chúng tôi sẽ hiển thị thông báo dựa trên hành động nhất định
Đặt đoạn mã sau vào sau mã include ‘
2‘; .
CREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
3Yêu cầu dữ liệu từ cơ sở dữ liệu
Yêu cầu dữ liệu từ cơ sở dữ liệu. Đặt đoạn mã sau vào sau đoạn mã trên phần trước
CREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
4Thêm các phương thức “đọc” và “đếm”
Phần trước sẽ không hoạt động nếu không có đoạn mã sau bên trong “đối tượng/sản phẩm. tệp đối tượng php”
CREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
5Mẫu trưng bày sản phẩm
9 sẽ không hoạt động nếu không có “CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
17“, vì vậy hãy tạo tệp đó và đặt đoạn mã sauCREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
6Thêm phương thức “readFirst[]”
Thêm phương thức “readFirst[]” vào tệp “
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
18”. Phần trước sẽ không hoạt động nếu không có nóCREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
7Làm cho nút “thêm vào giỏ hàng” hoạt động
Mở tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
19. Thay thế ______160 nhận xét bằng đoạn mã sau. CREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
8Tạo tập tin phân trang
Tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
17 sẽ không hoạt động nếu không có tệp CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
62. Tạo CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
62 với đoạn mã sauCREATE TABLE IF NOT EXISTS `product_images` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`product_id` int[11] NOT NULL,
`name` varchar[512] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='image files related to a product' AUTO_INCREMENT=105 ;
9đầu ra
Chạy sản phẩm của bạn. php trên trình duyệt http. //localhost/php-shopping-cart-using-sessions-level-1/products. php. Bạn sẽ thấy một đầu ra như hình bên dưới
Làm thế nào để thêm vào giỏ hàng?
Tạo add_to_cart. php
Tạo tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
64 vì khi nhấp vào nút 'Thêm vào giỏ hàng', tệp có mã sau bên trong sẽ được thực thi
0Tạo giỏ hàng. php
Tạo
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
65 với mã cơ bản sau
1Hiển thị thông báo dựa trên hành động
Chúng tôi sẽ hiển thị thông báo trên giỏ hàng. php dựa trên hành động nhất định
Đặt đoạn mã sau vào sau include ‘
2‘; của phần trước.
2Hiển thị các mặt hàng giỏ hàng
Đặt mã sau sau mã của phần trước
3
Đọc sản phẩm theo ID
Phần trước sẽ không hoạt động nếu không có phương thức “readByIds[]” bên trong tệp “
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
67” sau đây
4đầu ra
Khi người dùng nhấp vào nút “Thêm vào giỏ hàng”
Chuyển đến trang giỏ hàng bằng cách nhấp vào tùy chọn “Giỏ hàng” trên thanh điều hướng
Làm thế nào để cập nhật giỏ hàng?
Cập nhật số lượng giỏ hàng bằng JavaScript
Chúng tôi có nút 'cập nhật' trên giỏ hàng. tập tin php. Khi nút đó được nhấp, mã javascript được kích hoạt
Đặt đoạn mã sau vào bên trong $[document]. sẵn sàng[function[]{ của layout_footer. tập tin php .
5Tập lệnh PHP để cập nhật giỏ hàng
Phần trước sẽ không hoạt động nếu không có tệp này
Tạo CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
68 tệp. Đặt đoạn mã sau và lưu nó.
6Làm thế nào để loại bỏ sản phẩm trên giỏ hàng?
Chúng tôi có nút 'xóa' trên tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
65. Khi nút đó được nhấp, nó sẽ kích hoạt remove_from_cart. tập tin phpTạo tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
80. Đặt đoạn mã sau và lưu nó
7Tạo trang thanh toán
Trang thanh toán trông giống như trang giỏ hàng nhưng không thể cập nhật hoặc xóa các mặt hàng. Nó giống như tóm tắt các đơn đặt hàng. Tạo
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
81 với đoạn mã sau
8Tạo place_order. php
Chúng tôi sẽ sử dụng tệp này để hiển thị thông báo “cảm ơn” và xóa tất cả các mặt hàng trong giỏ hàng
Tạo tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
82. Đặt đoạn mã sau
9đầu ra
Khi người dùng nhấp vào nút “Cập nhật” trong trang giỏ hàng
Nếu người dùng nhấp vào nút “Xóa”
trang thanh toán
Khi người dùng nhấp vào nút “Đặt hàng”
Làm thế nào để làm cho trang sản phẩm?
tạo sản phẩm. php
Tạo
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
11 với mã cơ bản sau
0
Đọc chi tiết sản phẩm
Đặt đoạn mã sau vào sau “$product_image = new ProductImage[$db];”
1
Đọc phương pháp một sản phẩm
Phần trước sẽ không hoạt động nếu không có phương thức “readOne[]”. Thêm phương thức sau vào trong tệp “
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
67”
2
Hiển thị hình thu nhỏ của sản phẩm
Khi các hình thu nhỏ của sản phẩm này được di chuột, nó sẽ hiển thị phiên bản lớn hơn của hình ảnh. Đó là phong cách Amazon
Mở tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
11. Thay thế
______186 nhận xét bằng đoạn mã sau.
3
Đọc hình ảnh liên quan đến sản phẩm
Phần trước đó sẽ không hoạt động nếu không có phương thức “readByProductId[]” bên trong tệp “
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
18”
4
Chỉ có một hình ảnh sản phẩm được hiển thị tại một thời điểm. Phần này hiển thị hình ảnh sản phẩm lớn hơn dựa trên hình thu nhỏ của sản phẩm được di chuột
Mở tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
11. Thay thế
______189 nhận xét bằng đoạn mã sau.
5
Làm cho hình ảnh di chuột hoạt động
Đặt đoạn mã jQuery sau vào bên trong “$[document]. ready[function[]{” của tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
19
6
Hiển thị chi tiết sản phẩm
Phần này hiển thị giá sản phẩm, mô tả và danh mục
Mở tệp
CREATE TABLE IF NOT EXISTS `products` [
`id` int[11] NOT NULL AUTO_INCREMENT,
`name` varchar[512] NOT NULL,
`description` text NOT NULL,
`price` decimal[10,2] NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY [`id`]
] ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='products that can be added to cart' AUTO_INCREMENT=41 ;
11. Thay thế
______192 nhận xét bằng đoạn mã sau.
7
Kết xuất nút 'Giỏ hàng'
Lúc này sẽ hiển thị nút “Thêm vào giỏ hàng” nếu sản phẩm chưa được thêm vào giỏ hàng. Nếu không, chúng tôi sẽ hiển thị nút 'cập nhật giỏ hàng'
Đặt mã sau sau mã của phần trước
8
đầu ra
Khi người dùng nhấp vào bất kỳ hình ảnh sản phẩm nào trong sản phẩm. php, anh ấy sẽ chuyển đến trang sản phẩm giống như hình bên dưới
Nếu người dùng di chuột vào bất kỳ hình thu nhỏ hoặc hình ảnh nhỏ nào, thì hình ảnh lớn cũng sẽ thay đổi. Nút “Thêm vào giỏ hàng” cũng đang hoạt động
Đây là kết quả khi sản phẩm đã được thêm vào giỏ hàng.
Nếu người dùng nhấp vào nút “Cập nhật giỏ hàng”, anh ấy sẽ đến trang giỏ hàng nơi anh ấy có thể cập nhật số lượng giỏ hàng.
Mọi người nói gì về mã này?
Tôi rất vui vì mã này làm hài lòng người khác. Sau đây là một số trong số họ từ phần bình luận
★★★★★ “Này Mike, tên tôi là Leonardo đến từ Argentina. Tôi đã đọc blog của bạn khoảng 4 tháng kể từ bây giờ và tôi thực sự phải nói. hướng dẫn của bạn rất hay, chúng đã giúp tôi trong nhiều công việc của mình… Chà, cảm ơn bạn rất nhiều. Tôi thực sự ngưỡng mộ công việc của bạn. ” ~ Leonardo
★★★★★ “Trời ạ, hướng dẫn của bạn thật tuyệt vời. Tôi rất vui vì tôi đã tìm thấy blog của bạn. tôn trọng lớn. ” ~ Milos
★★★★★ “Tôi đã mua mã nguồn cấp 2 của bạn và nó rất tốt, giúp ích rất nhiều cho tôi. Đó là giá trị nó. Cám ơn rất nhiều. ” ~ Ashley Deanna Plata
★★★★★ “Xin chào, Đây là một kịch bản tuyệt vời và tôi đã trả tiền cho công việc của bạn [Thật xứng đáng]. ” ~ Louis Blais
★★★★★ “Không từ ngữ nào có thể diễn tả được tôi biết ơn như thế nào đối với công việc và những bài báo bạn đăng, có một số rắc rối khi làm một số việc nhưng các bài báo của bạn như thường lệ đã giáng một đòn mạnh vào đầu. Chúng cũng là một cách tuyệt vời để mở rộng sau này. ” ~ Jeremy Smith
Tải xuống mã nguồn
Chúng tôi thực sự khuyên bạn nên làm theo hướng dẫn từng bước, chi tiết của chúng tôi ở trên trước. Không có gì đánh bại kinh nghiệm khi nói đến học tập. Nhưng chúng tôi tin rằng bạn sẽ học nhanh hơn nếu bạn cũng xem mã nguồn cuối cùng. Chúng tôi coi đó là hướng dẫn bổ sung của bạn
Hãy tưởng tượng giá trị hoặc nâng cấp kỹ năng mà nó có thể mang lại cho bạn. Thu nhập bổ sung bạn có thể nhận được từ công việc, dự án hoặc kinh doanh của mình. Thời gian quý báu mà bạn tiết kiệm được
Danh sách các tính năng
Tính năngMã nguồn CẤP 1Mã nguồn CẤP 2Học cách viết mã chức năng giỏ hàng đơn giảnCÓCÓLiệt kê tất cả các sản phẩm từ cơ sở dữ liệu MySQLCÓCÁC Trang trên trang danh sách sản phẩmCÓCÓThêm vào nút hành động giỏ hàngCÓCÓXóa khỏi nút hành động giỏ hàngCÓCẬP NHẬTCập nhật số lượng sản phẩmCÓCÚNGTrang thanh toán, trang đặt hàng & trang cảm ơnCÓCÓCtrang chi tiết sản phẩm kiểu AmazonCÓCÓThay đổi hình ảnh
MUA MÃ NGUỒN CẤP 1
MUA MÃ NGUỒN CẤP 2
Làm thế nào để chạy mã nguồn?
Khi bạn đã tải xuống mã nguồn, đây là cách bạn có thể chạy nó
- Giải nén các tập tin vào thư mục máy chủ của bạn
- Truy cập PhpMyAdmin của bạn, tạo cơ sở dữ liệu với tên “shop_cart_sessions_1”
- Nhập “shop_cart_sessions_1. sql” nằm trong thư mục “README”
- Bạn có thể cần thay đổi thông tin xác thực cơ sở dữ liệu trong/config/database. php
- Chạy “sản phẩm. php”, đây là tệp PHP chính. Chúng tôi không có chỉ số. php
Cần nhiều tính năng hơn?
Mô-đun giỏ hàng PHP. Bạn có thể tải xuống mã nguồn “PHP Shopping Cart & Ordering Module” của chúng tôi. Nó có một số tính năng bạn cần tìm hiểu thêm về cách xử lý người dùng, giỏ hàng và đặt hàng bằng công nghệ PHP & MySQL. CLICK VÀO ĐÂY ĐỂ TÌM HIỂU THÊM
Hệ thống giỏ hàng PHP. Bạn cũng có thể tải xuống mã nguồn “Hệ thống giỏ hàng PHP” của chúng tôi. Nhiều bạn yêu cầu mã nguồn kiểu này mà không có ở đây
Bạn cần một hệ thống giỏ hàng có quản lý người dùng [người bán và khách hàng], quản lý sản phẩm, quản lý đơn hàng, bảo mật và nhiều tính năng khác dựa trên mã nguồn của chúng tôi tại đây trong codeofaninja. com. CLICK VÀO ĐÂY ĐỂ TÌM HIỂU THÊM
Cái gì tiếp theo?
lựa chọn 1. Chúng tôi vừa học cách viết mã giỏ hàng trực tuyến từ đầu bằng PHP SESSIONS. Nhưng bạn có biết rằng chúng ta có thể tạo hầu hết các chức năng tương tự bằng cách sử dụng một cơ chế PHP khác có tên là COOKIES không?
Nếu bạn hào hứng tìm hiểu khái niệm mới này, hãy chuyển sang phần hướng dẫn tiếp theo. Hướng dẫn Giỏ hàng PHP Sử dụng COOKIES
Lựa chọn 2. Hướng dẫn tiếp theo này là bước khởi đầu cho hành trình lập trình JavaScript của chúng ta. Đi đến hướng dẫn tiếp theo của chúng tôi. Cách tạo API REST đơn giản trong PHP – Hướng dẫn từng bước
Hướng dẫn liên quan
Chúng tôi đã liệt kê tất cả các hướng dẫn phát triển web full-stack chất lượng cao tại đây. Bấm vào đây
Một số lưu ý
Tìm thấy một vấn đề?
Nếu bạn gặp sự cố với mã này, vui lòng gửi email cho chúng tôi. Trước khi bạn gửi email, vui lòng đọc quy tắc ứng xử của chúng tôi. Địa chỉ email của nhóm chúng tôi là [email được bảo vệ]
Vui lòng mô tả về vấn đề của bạn. Vui lòng cung cấp thông báo lỗi, ảnh chụp màn hình [hoặc bản ghi màn hình] và URL thử nghiệm của bạn. Cảm ơn
Đăng ký CodeOfaNinja
Nhận các hướng dẫn phát triển web có giá trị qua email của bạn. Đăng ký MIỄN PHÍ ngay bây giờ
Tên
E-mail
HP
Cảm ơn
Cảm ơn bạn đã nghiên cứu Hướng dẫn Giỏ hàng PHP của chúng tôi bằng SESSIONS. Hãy chia sẻ hướng dẫn của chúng tôi với bạn bè của bạn
Làm cách nào để lưu trữ các mặt hàng trong giỏ hàng trong phiên PHP?
Bạn có thể sử dụng $_SESSION để lưu trữ Id mặt hàng và Số lượng . Trên trang thanh toán khi người dùng gửi/xác nhận đơn đặt hàng, bạn có thể lấy giá trị mặt hàng từ DB so với Id mặt hàng và tính Giá thực tế cho mặt hàng đó. Lưu câu trả lời này.
Làm cách nào để tạo giỏ hàng đơn giản trong PHP mà không cần cơ sở dữ liệu?
Tất cả hành động của giỏ hàng được thực hiện bằng cách sử dụng jQuery AJAX. .
Thư viện sản phẩm và HTML giỏ hàng. Tôi đã thiết kế landing page gồm 2 phần chính là sản phẩm và giỏ hàng. .
Nhận mảng sản phẩm và tạo thư viện. .
Thao tác giỏ hàng jQuery AJAX. .
Mã PHP để thực hiện hành động giỏ hàng. .
Lớp sản phẩm PHP
Làm cách nào để thêm nhiều mặt hàng vào giỏ hàng trong PHP?
Mỗi mặt hàng sản phẩm được hiển thị dưới dạng thẻ có tùy chọn hộp kiểm. Hộp kiểm này được sử dụng để chọn sản phẩm nếu người dùng muốn chuyển nó vào giỏ hàng. Sau khi chọn các sản phẩm yêu thích bằng cách sử dụng các hộp kiểm này, nút gửi Thêm vào giỏ hàng được sử dụng để gửi phần lớn các sản phẩm đã chọn tới PHP .