Làm cách nào để thêm mặt hàng vào giỏ hàng trong php?
Chức năng giỏ hàng là một phần quan trọng của mọi dự án Thương mại điện tử. Nó giúp người dùng chọn và mua nhiều mặt hàng cùng một lúc. Ngoài ra, giỏ hàng trực tuyến cho phép xem các mặt hàng đã chọn và tổng giá trước khi gửi đơn đặt hàng. Nếu bạn muốn xây dựng một giỏ hàng PHP đơn giản từ đầu, hướng dẫn từng bước này sẽ giúp bạn rất nhiều. Trong hướng dẫn này, chúng tôi sẽ cung cấp hướng dẫn đầy đủ và mã ví dụ để tạo một giỏ mua hàng đơn giản trong PHP bằng SESSION và MySQL Show
Kịch bản giỏ hàng ví dụ này được thiết kế theo cách có thể triển khai dễ dàng trong dự án PHP và hướng dẫn giúp bạn dễ hiểu khái niệm giỏ hàng trong ứng dụng web. Trong tập lệnh mẫu của chúng tôi, chúng tôi sẽ sử dụng phiên PHP để lưu trữ thông tin sản phẩm trong giỏ hàng. Sau khi người dùng gửi đơn đặt hàng, thông tin sản phẩm sẽ được chèn vào cơ sở dữ liệu bằng PHP và MySQL Các chức năng sau sẽ được triển khai trong tập lệnh PHP Shopping Cart
Trước khi bắt đầu, hãy xem cấu trúc tệp của tập lệnh giỏ hàng PHP php_shopping_cart/ ├── index.php ├── viewCart.php ├── checkout.php ├── orderSuccess.php ├── config.php ├── dbConnect.php ├── cartAction.php ├── Cart.class.php ├── js/ | └── jquery.min.js ├── css/ | ├── bootstrap.min.css | └── style.css └── images/ Tạo bảng cơ sở dữ liệuMột số bảng được yêu cầu trong cơ sở dữ liệu để lưu trữ thông tin về sản phẩm, khách hàng và đơn đặt hàng. Chúng tôi sẽ sử dụng 4 bảng cơ sở dữ liệu (sản phẩm, khách hàng, đơn đặt hàng và order_items) để tạo một giỏ mua hàng dựa trên phiên đơn giản trong PHP với MySQL SQL sau đây tạo một bảng CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;9 để lưu trữ thông tin sản phẩm trong cơ sở dữ liệu MySQL CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; SQL sau đây tạo một bảng CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;0 để lưu trữ thông tin liên hệ của người dùng trong cơ sở dữ liệu MySQL CREATE TABLE `customers` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL, `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL, `address` text COLLATE utf8_unicode_ci NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; SQL sau đây tạo một bảng CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;1 trong cơ sở dữ liệu MySQL để lưu trữ thông tin đơn đặt hàng do khách hàng gửi. CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;2 sẽ là một FOREIGN KEY được liên kết với bảng CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;0 CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `customer_id` int(11) NOT NULL, `grand_total` float(10,2) NOT NULL, `created` datetime NOT NULL, `status` enum('Pending','Completed','Cancelled') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Pending', PRIMARY KEY (`id`), KEY `customer_id` (`customer_id`), CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; SQL sau đây tạo một bảng CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;4 để lưu trữ các mục của mỗi đơn đặt hàng trong cơ sở dữ liệu MySQL. CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;5 sẽ là một FOREIGN KEY được liên kết với bảng CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;1 CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;1 Thư viện giỏ hàng (Cart. lớp. php)Thư viện Giỏ hàng là một PHP tùy chỉnh xử lý các hoạt động liên quan đến giỏ hàng. Các phương thức của lớp Cart giúp bạn tích hợp chức năng giỏ hàng trong PHP
CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;2 Cấu hình trang web và cơ sở dữ liệu (config. php)Trong tệp CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;7, một số cài đặt chung và cơ sở dữ liệu được xác định trong các biến không đổi hằng số chung
Hằng số cơ sở dữ liệu
CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;4 Kết nối cơ sở dữ liệu (dbConnect. php)Tệp CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;8 được sử dụng để kết nối và chọn cơ sở dữ liệu MySQL bằng PHP CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;6 Bộ điều khiển yêu cầu giỏ hàng (cartAction. php)Tệp CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;9 xử lý tất cả các hành động mà người dùng yêu cầu từ giao diện người dùng trang web. Các khối mã sẽ được thực thi dựa trên hành động được yêu cầu
CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `description` text COLLATE utf8_unicode_ci NOT NULL, `price` float(10,2) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;3 Thư viện Bootstrap và jQueryChúng tôi sẽ sử dụng thư viện Bootstrap 5 để thiết kế danh sách sản phẩm, giỏ hàng, biểu mẫu thanh toán và giao diện người dùng trạng thái đơn hàng
Danh sách sản phẩm (chỉ mục. php)Ban đầu, tất cả các sản phẩm được lấy từ cơ sở dữ liệu và được liệt kê trên trang web
Giỏ hàng (viewCart. php)Ban đầu, tất cả các mặt hàng trong giỏ hàng được liệt kê ở định dạng bảng
Xem trước đơn hàng (thanh toán. php)Tại trang thanh toán, người mua có thể xem trước sản phẩm đã chọn trước khi gửi đơn hàng
Đặt hàng thành công (orderSuccess. php)Khi đơn đặt hàng được gửi thành công, khách hàng được chuyển hướng đến trang này
Triển khai giỏ hàng trong CodeIgniter Phần kết luậnHy vọng hướng dẫn này sẽ giúp bạn hiểu chức năng giỏ hàng cơ bản trong PHP với SESSION và MySQL. Sử dụng thư viện Giỏ hàng PHP và mã ví dụ này, bạn sẽ có thể triển khai giỏ hàng trong ứng dụng web của mình ngay lập tức. Ngoài ra, bạn có thể tùy chỉnh thiết kế và nâng cao chức năng của tập lệnh giỏ hàng dựa trên giao diện người dùng của trang web Bạn có muốn nhận trợ giúp triển khai hay sửa đổi hoặc nâng cao chức năng của tập lệnh này không? Làm cách nào để thêm các mặt hàng vào giỏ hàng PHP?page=cart) cùng với phương thức được đặt để đăng . Trang giỏ hàng (cart. php) sẽ thêm sản phẩm vào giỏ hàng. Với trường mẫu số lượng, chúng ta có thể đặt giá trị tối đa, giá trị này được đặt thành số lượng của sản phẩm (lấy từ bảng sản phẩm).
Làm cách nào để tạo thêm đơn giản vào giỏ hàng trong PHP?Các bước để tạo một giỏ hàng đơn giản bằng PHP và MySQL . Tạo cơ sở dữ liệu, bảng và kết xuất dữ liệu mẫu Tạo kết nối cơ sở dữ liệu Tạo một tệp chỉ mục Tạo một tập tin giỏ hàng Tạo một tệp CSS 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 .
Làm cách nào để thêm sản phẩm trong PHP?addProduct. php chứa biểu mẫu và thêm sản phẩm. nhận sản phẩm. php hiển thị thông tin chi tiết của một sản phẩm đã chọn. |