Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Xây dựng Tính năng Giỏ hàng Với PHP và MySQL

by
Difficulty:AdvancedLength:LongLanguages:

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Trong video + bài hướng dẫn của tuần này, chúng tôi sẽ hướng dẫn bạn cách xây dựng giỏ hàng của riêng bạn bằng PHP và MySQL. Như bạn sẽ thấy, nó không quá khó như bạn nghĩ.


Video Xem trước



Bước 1

Hãy bắt đầu bằng cách xem xét cấu trúc thư mục:


Cấu trúc

  • reset.css - bạn có thể lấy css reset từ liên kết này
  • style.css - tập tin css mà chúng ta sẽ sử dụng để định phong cách cho code HTML của chúng ta
  • connection.php - tập tin này sẽ tạo kết nối tới cơ sở dữ liệu của chúng ta
  • index.php - template cho giỏ hàng của chúng ta
  • cart.php - tập tin nơi chúng ta sẽ có thể thay đổi các sản phẩm của chúng ta từ giỏ hàng (thêm, xóa)
  • products.php - trang liệt kê các sản phẩm

Bước 2

Chúng ta sẽ bắt đầu bằng cách viết code html và sau đó định phong cách cho nó. Vì vậy, hãy mở index.php và sao chép/dán code dưới đây vào:

Như bạn thấy, trang của chúng ta có hai cột: cột main và cột sidebar. Hãy chuyển sang CSS. Mở tập tin style.css và nhập code dưới đây vào:

Trang sản phẩm của chúng ta bây giờ sẽ trông giống như sau:



Video Hướng dẫn Đầy đủ



Bước 3

Trước khi chúng ta chuyển sang phần PHP/MySQL, chúng ta cần phải tạo cơ sở dữ liệu. Do đó hãy mở phpMyadmin và làm theo các bước sau:

  1. Vào tab Privileges, nhấp vào nút add new user, và sử dụng các thiết lập sau: Username: tutorial; Host: localhost; Password: supersecretpassword ;. Bây giờ đảm bảo rằng các quyền Global được thiết lập; Sau đó chuyển sang bước tiếp theo.
  2. Tạo một cơ sở dữ liệu mới được gọi là tutorials.
  3. Tạo một bảng mới gọi là products và thiết lập số lượng trường thành 4. Bây giờ điền vào các trường đó, vì vậy bạn có: id_integer - đảm bảo nó được thiết lập thành INT và đánh dấu nó như PRIMARY (đồng thời thiết lập nó thành auto_increment); name - chọn kiểu VARCHAR với chiều dài 100; description - VARCHAR với chiều dài 250; price - đảm bảo rằng nó được thiết lập thành DECIMAL(2,6)
  4. Điền vào bảng dữ liệu của bạn bằng một số sản phẩm mẫu

Để tiết kiệm thời gian, tôi đã xuất các sản phẩm của tôi để bạn chỉ cần chạy truy vấn sau đây:





Bước 4

Trước khi chúng ta di chuyển đến phần trích xuất dữ liệu từ cơ sở dữ liệu, tôi sẽ tạo cho index.php của tôi một template cho danh sách sản phẩm và giỏ hàng. Do đó, hãy thêm code sau vào trên cùng của trang index.php của bạn:

  1. session_start() - nó sẽ được sử dụng sau này; nó sẽ cho phép chúng ta thật sự sử dụng các session (điều quan trọng là session_start được viết trước khi bất kỳ dữ liệu nào khác được gửi tới trình duyệt).
  2. Trong dòng thứ hai, chúng ta include connection.php để xác lập kết nối với cơ sở dữ liệu (chúng ta sẽ giải quyết điều này trong giây lát nữa). Một điều nữa: sự khác biệt giữa include và require là nếu bạn sử dụng require và tập tin không được tìm thấy, việc thực thi script sẽ kết thúc. Nếu bạn sử dụng "include", script sẽ tiếp tục thực thi.
  3. Thay vì sao chép toàn bộ code html (liên kết đến css, đến js) cho từng tập tin trong trang web của bạn, bạn có thể gom chúng thành một tập tin có liên quan. Vì vậy, trước tiên, tôi kiểm tra xem có một biến GET được gọi là "page set" hay không. Nếu không, tôi tạo một biến mới gọi là _pages. Nếu biến GET được gọi là pages đã được thiết lập trước, tôi muốn đảm bảo rằng tập tin mà tôi sẽ include là một trang hợp lệ.

Để thực hiện công việc này, chúng ta cần phải include tập tin; thêm dòng này vào index.php giữa div với id của "main":

Đây là index.php hoàn chỉnh mà chúng ta có lúc này:


Hãy tạo kết nối đến MySQL. Mở connections.php và nhập vào như sau:


Bước 5

Bây giờ là lúc viết code cho trang sản phẩm. Vì vậy hãy mở nó và nhập vào như sau:

Hãy quan sát trang:


Như bạn thấy, nó khá rối. Vì vậy, hãy định phong cách cho nó bằng cách thêm CSS này.

Được rồi: bây giờ hãy xem lại một lần nữa:


Có vẻ tốt hơn nhiều, bạn có nghĩ vậy không? Dưới đây bạn có code hoàn chỉnh cho style.css:


Bước 6

Trước khi trích xuất sản phẩm từ cơ sở dữ liệu, chúng ta hãy xoá bỏ 2 table row cuối cùng ra khỏi table của chúng ta (chúng ta chỉ sử dụng nó để xem table của chúng ta sẽ trông như thế nào thôi). Xoá cái này:

Tuyệt! Bây giờ ở nơi mà các table row được đặt, hãy nhập code PHP sau:

  1. Như vậy, trước tiên chúng ta sử dụng SELECT để truy vấn sản phẩm, sau đó chúng ta lặp qua mỗi hàng từ cơ sở dữ liệu và xuất nó lên trang trong một table row.
  2. Bạn có thể thấy rằng các liên kết đến cùng một trang (khi người dùng nhấp vào liên kết sản phẩm thì nó được thêm vào giỏ hàng/session). Chúng ta chỉ cần truyền vào một số biến phụ như id của sản phẩm.

Nếu bạn di chuyển chuột qua một trong các liên kết Add to cart, bạn có thể thấy, ở cuối trang, id của sản phẩm được truyền vào.



Bước 7

Hãy làm cho liên kết đó hoạt động bằng cách thêm code sau đây vào trên cùng của trang:

  1. Nếu biến GET được gọi là action đã được thiết lập và nó có giá trị ADD, thì chúng ta sẽ thực thi đoạn code.
  2. Chúng ta đảm bảo rằng id được truyền qua biến GET là một số nguyên
  3. Nếu id của sản phẩm nằm trong SESSION, chúng ta chỉ cần tăng số lượng của nó lên 1
  4. Nếu id không có ở trong session, chúng ta cần phải chắc chắn rằng id truyền qua biến GET tồn tại trong cơ sở dữ liệu. Nếu có, chúng ta lấy giá bán và tạo ra session của nó. Nếu không, chúng ta sẽ thiết lập một biến được gọi là message sẽ chứa thông báo lỗi của chúng ta.

Hãy kiểm tra xem biến message đó được thiết lập hay chưa và xuất nó vào trang (nhập code này dưới tiêu đề trang H1):

Ở đây bạn có thể thấy trang products.php hoàn chỉnh.

Đây là thông báo lỗi nếu id của sản phẩm không hợp lệ



Bước 8

Hãy quay trở lại index.php và xây dựng sidebar. Thêm code sau đây:

  1. Đầu tiên chúng ta kiểm tra session giỏ hàng đã được thiết lập hay chưa. Nếu không, chúng ta sẽ hiển thị thông báo, cảnh báo người dùng rằng giỏ hàng trống.
  2. Tiếp theo chúng ta tạo một lệnh SELECT trong mysql, nhưng đồng thời chúng ta chỉ lựa chọn các sản phẩm tồn tại trong session. Để thực hiện việc này, chúng ta sử dụng hàm foreach. Do đó, chúng ta sẽ lặp qua session và thêm id sản phẩm vào SELECT. Tiếp theo, chúng ta sử dụng hàm substr để loại bỏ dấu phẩy cuối cùng khỏi SELECT.
  3. Cuối cùng, chúng ta xuất dữ liệu lên trình duyệt.

Hãy xem những hình ảnh dưới đây:



Vì index.php là một template cho tất cả các tập tin, nên sidebar cũng sẽ hiển thị trong cart.php. Thật tuyệt vời phải không?!


Bước 9

Cuối cùng, mở cart.php và bắt đầu bằng cách nhập code sau:

Code này tương tự như code từ index.php và products.php, vì vậy tôi sẽ không giải thích chúng nữa. Bạn nên chú ý rằng thay vì hiển thị số lượng trong một form, bây giờ nó được hiển thị trong một hộp input (để chúng ta có thể thay đổi số lượng). Ngoài ra cái table được bọc bằng thẻ form. Để có được tổng giá của các mặt hàng mà chúng ta nhân số lượng của id của sản phẩm cụ thể (từ session) với giá của nó. Việc này được hoàn thành trong mỗi vòng lặp.

Lưu ý: đầu vào là một mảng, key là id của sản phẩm, và quantity là giá trị của số lượng.



Bước 10

Bước cuối cùng mà chúng ta cần làm là làm cho form hoạt động. Vì vậy, hãy thêm code này vào bên trên của trang cart.php.

  1. Trước tiên, chúng ta kiểm tra xem form đã được submit hay chưa. Nếu nó đã được submit và giá trị của input là 0, chúng ta sẽ unset session đó.
  2. Nếu giá trị là bất kỳ giá trị nào khác, thì chúng ta sẽ thiết lạp quantity thành giá trị đó.

Đây là tập tin cart.php hoàn chỉnh


Tôi hy vọng bạn thích hướng dẫn này. Nếu bạn có bất kỳ câu hỏi nào, hãy xem hướng dẫn sâu hơn bằng video!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.