Làm cách nào để tạo phiên giỏ hàng trong PHP?

Trong hướng dẫn này, chúng ta sẽ học cách thêm vào giỏ hàng bằng cách sử dụng phiên trong php. Trong bài đăng trên blog trước đây của tôi, tôi đã tạo một trang sản phẩm duy nhất. Bây giờ tôi đang sử dụng cùng một trang sản phẩm để áp dụng tính năng thêm vào giỏ hàng. Tôi sẽ sử dụng phiên php để thêm vào chức năng giỏ hàng. Vì vậy, hãy bắt đầu

Làm cách nào để tạo phiên giỏ hàng trong PHP?

HTML

1

2

3

4

5

6

7

8

9

10

11

 

   <biểu mẫu lớp = "form-inline" method="POST">

                    <div lớp = "form-group mb-2">

                        <đầu vào loại = "number" name="product_qty" id="productQty" class="form-control" placeholder="Quantity" min="1" max="1000" value="1">

                        <đầu vào loại = "hidden" name="product_id" value=" echo $getProductData['id']?>">

                    < / div>

                    <div lớp = "form-group mb-2 ml-2">

                        <nút loại = "submit" class="btn btn-primary" name="add_to_cart" value="add to cart">Add to Cart</button>

                    < / div>

                < / biểu mẫu>

 

Như bạn có thể thấy trong đoạn mã trên, tôi đã bọc số lượng sản phẩm và nút giỏ hàng dưới biểu mẫu. Tôi cũng tạo một trường nhập liệu ẩn mà tôi đang đặt id sản phẩm. Ngoài ra biểu mẫu có phương thức POST

PHP

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

 

if(isset($_POST['add_to_cart']) && $_POST['add_to_cart'] == 'add to cart')

    {

        $productID = intval($_POST['product_id']);

        $productQty = intval($_POST['product_qty']);

        

        $sql = "CHỌN p. *,pdi. img từ sản phẩm p

             NGƯỜI IN THAM GIA product_images pdi TRÊN pdi. product_id = p. id WHERE pdi. is_featured =. đặc trưng VÀ p. id =. productID";

 

        $chuẩn bị = $db->prepare($sql);

        

        $tham số = [

                '. nổi bật' = >1,

                '. productID' = >$productID,

            ];

        

        $chuẩn bị - >execute($params);

        $tìm nạp Sản phẩm = $prepare->fetch(PDO:. FETCH_ASSOC);

 

        $tính Tổng giá = number_format($productQty * $fetchProduct['price'],2);

        

        $cartArray = [

            'product_id' = >$productID,

            'qty' = > $productQty,

            'product_name' = >$fetchProduct['product_name'],

            'product_price' = > $fetchProduct['price'],

            'total_price' = > $calculateTotalPrice,

            'product_img' = >$fetchProduct['img']

        ];

        

        nếu(isset($_SESSION['cart_items']) && !trống($_SESSION['cart_items']))

        {

            $ID sản phẩm = [];

            foreach($_SESSION['cart_items'] as $cartKey => $cartItem)

            {

                        $ID sản phẩm[] = $cartItem['product_id'];

                        if($giỏ hàng['product_id'] == $productID)

                {

                    $_SESSION['cart_items'][$cartKey]['qty'] = $productQty;

                    $_SESSION['cart_items'][$cartKey]['total_price'] = $calculateTotalPrice;

                    nghỉ;

                }

            }

 

            nếu(. in_array($productID,$productIDs))

            {

                        $_SESSION['cart_items'][]= $cartArray;

            }

 

            $successMsg = true;

            

        }

        khác

        {

            $_SESSION['cart_items'][]= $cartArray;

            $successMsg = true;

        }

 

    }

 

Đoạn mã trên bắt đầu với điều kiện gửi biểu mẫu và sau đó tôi đã viết một truy vấn sql để lấy dữ liệu của sản phẩm đó từ cơ sở dữ liệu. Sau khi lấy dữ liệu sản phẩm và lưu vào biến $fetchProduct, tôi tính tổng giá bằng cách nhân số lượng với giá sản phẩm. Tôi cũng sử dụng hàm number_format() để hiển thị 2 chữ số sau dấu thập phân. Tiếp theo, tôi đã tạo một mảng bằng cách sử dụng biến $cartArray. Sau đó, tôi đã kiểm tra điều kiện của $_SESSION['cart_items'] để xác minh rằng mặt hàng hiện tại trong giỏ hàng là mặt hàng đầu tiên trong giỏ hàng hoặc $_SESSION['cart_items'] đã có mặt hàng trong giỏ hàng. Nếu $_SESSION['cart_items'] trống, thì tôi thêm $cartArray vào $_SESSION['cart_items']. Nếu không, tôi lặp lại $_SESSION['cart_items'] bằng cách sử dụng vòng lặp foreach và so khớp sản phẩm hiện tại có tồn tại hay không nếu sản phẩm hiện tại có tồn tại, tôi sẽ cập nhật số lượng và tổng giá của sản phẩm đó và ngắt vòng lặp. Nếu sản phẩm hiện tại không có trong $_SESSION['cart_items'] thì tôi sẽ thêm nó vào $_SESSION['cart_items']

Làm cách nào để thêm dữ liệu giỏ hàng trong phiên trong PHP?

Sử dụng khóa trong biến phiên giỏ hàng. Trong vòng lặp, hãy sử dụng ID làm tham chiếu sản phẩm. $pid = $item ['pid']; . và tăng giá trị lên một nếu nó đã có trong giỏ hàng. .. and increment the value by one if it is already in the cart ...

Làm cách nào để tạo một trang giỏ hàng trong PHP?

Bắt đầu. Có một vài bước chúng ta cần thực hiện trước khi tạo hệ thống giỏ hàng của mình. .
Tạo cơ sở dữ liệu và thiết lập bảng. .
Thiết kế hệ thống giỏ hàng bằng CSS. .
Tạo tệp chức năng. .
Tạo tệp chỉ mục. .
Tạo Trang chủ. .
Tạo trang sản phẩm. .
Tạo trang sản phẩm

Làm cách nào để tạo phiên trong PHP?

Bạn có thể bắt đầu một phiên trong PHP bằng cách sử dụng hàm session_start() . Theo mặc định, chức năng này sẽ kiểm tra phiên hiện có trước tiên. Nếu một phiên đã tồn tại, nó sẽ không làm gì cả, nhưng nó sẽ tạo một phiên nếu không có phiên nào tồn tại trước đó.

Cách thêm vào giỏ hàng hoạt động trong PHP?

Chúng là tính năng thêm vào giỏ hàng, xóa một mặt hàng khỏi giỏ hàng, xóa toàn bộ giỏ hàng và tương tự. Trong đoạn mã trên, tôi đã thêm tùy chọn HTML để thêm sản phẩm vào giỏ hàng từ thư viện sản phẩm. Khi người dùng nhấp vào nút 'Thêm vào giỏ hàng', biểu mẫu HTML sẽ chuyển id sản phẩm tới tập lệnh PHP phụ trợ .