Penjelasan terperinci tentang teknik dan kaedah melaksanakan SKU pelbagai spesifikasi produk dalam PHP
Dalam laman web e-dagang, SKU (Unit Penyimpan Stok) produk berbilang spesifikasi adalah kaedah pengurusan jualan yang biasa. Dengan menetapkan atribut spesifikasi yang berbeza, seperti saiz, warna, gaya, dsb., pengguna boleh diberikan lebih banyak pilihan dan peniaga boleh menguruskan inventori dan jualan dengan lebih mudah. Artikel ini akan memperkenalkan teknik dan kaedah untuk menggunakan PHP untuk melaksanakan SKU berbilang spesifikasi produk dan memberikan contoh kod.
Pertama, kita perlu mereka bentuk struktur jadual pangkalan data untuk menyimpan maklumat spesifikasi produk. Reka bentuk struktur jadual biasa adalah menggunakan tiga jadual: jadual produk, jadual spesifikasi dan jadual SKU. Jadual produk menyimpan maklumat asas produk, jadual spesifikasi menyimpan atribut spesifikasi dan jadual SKU menyimpan maklumat seperti inventori dan harga spesifikasi produk tertentu. Berikut ialah contoh struktur jadual yang dipermudahkan:
Jadual produk (produk):
Jadual spesifikasi (spesifikasi):
<?php // 连接数据库 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // 查询商品规格 $query = "SELECT * FROM product"; $result = mysqli_query($conn, $query); while ($row = mysqli_fetch_assoc($result)) { $product_id = $row['id']; $product_name = $row['name']; echo "商品ID:$product_id<br>"; echo "商品名称:$product_name<br>"; // 查询商品规格属性 $query_spec = "SELECT specification.id, specification.name FROM specification LEFT JOIN sku ON sku.specification_id = specification.id WHERE sku.product_id = $product_id AND sku.stock > 0 GROUP BY specification.id"; $result_spec = mysqli_query($conn, $query_spec); while ($row_spec = mysqli_fetch_assoc($result_spec)) { $specification_id = $row_spec['id']; $specification_name = $row_spec['name']; echo "规格属性ID:$specification_id<br>"; echo "规格属性名称:$specification_name<br>"; // 查询商品规格值 $query_value = "SELECT sku.value FROM sku WHERE sku.product_id = $product_id AND sku.specification_id = $specification_id AND sku.stock > 0"; $result_value = mysqli_query($conn, $query_value); while ($row_value = mysqli_fetch_assoc($result_value)) { $specification_value = $row_value['value']; echo "规格属性值:$specification_value<br>"; } } } // 关闭数据库连接 mysqli_close($conn); ?>
<?php // 连接数据库 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // 根据选择的规格查询SKU信息 $selected_specifications = $_POST['specifications']; // 假设用户选择的规格为一个数组,如array('颜色' => '红色', '尺寸' => 'XL') $query_sku = "SELECT * FROM sku WHERE product_id = $product_id"; foreach ($selected_specifications as $specification => $value) { $query_sku .= " AND specification_id IN (SELECT sku.specification_id FROM sku WHERE sku.value = '$value')"; } $result_sku = mysqli_query($conn, $query_sku); while ($row_sku = mysqli_fetch_assoc($result_sku)) { $sku_id = $row_sku['id']; $sku_stock = $row_sku['stock']; $sku_price = $row_sku['price']; echo "SKU ID:$sku_id<br>"; echo "库存:$sku_stock<br>"; echo "价格:$sku_price<br>"; } // 关闭数据库连接 mysqli_close($conn); ?>
[Sambungan pangkalan data MySQL PHP](https://www.php.net/manual/en/mysqli.quickstart.connections.php)
Atas ialah kandungan terperinci Penjelasan terperinci tentang teknik dan kaedah untuk melaksanakan SKU pelbagai spesifikasi produk menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!