PHP商品筛选是指使用PHP编程语言实现的一个功能,允许用户根据不同的条件(如价格范围、品牌、分类等)来筛选商品列表。这种功能常见于电子商务网站,可以帮助用户快速找到他们感兴趣的商品。
假设我们有一个商品数据库表 products
,包含以下字段:id
, name
, price
, brand
, category
。
<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "ecommerce";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取筛选条件
$minPrice = isset($_GET['minPrice']) ? $_GET['minPrice'] : '';
$maxPrice = isset($_GET['maxPrice']) ? $_GET['maxPrice'] : '';
$brand = isset($_GET['brand']) ? $_GET['brand'] : '';
$category = isset($_GET['category']) ? $_GET['category'] : '';
// 构建SQL查询
$sql = "SELECT * FROM products WHERE 1=1";
$params = [];
if (!empty($minPrice)) {
$sql .= " AND price >= ?";
$params[] = $minPrice;
}
if (!empty($maxPrice)) {
$sql .= " AND price <= ?";
$params[] = $maxPrice;
}
if (!empty($brand)) {
$sql .= " AND brand = ?";
$params[] = $brand;
}
if (!empty($category)) {
$sql .= " AND category = ?";
$params[] = $category;
}
// 执行查询
$stmt = $conn->prepare($sql);
$stmt->bind_param(str_repeat('s', count($params)), ...$params);
$stmt->execute();
$result = $stmt->get_result();
// 获取结果
$products = [];
while ($row = $result->fetch_assoc()) {
$products[] = $row;
}
// 关闭连接
$stmt->close();
$conn->close();
// 输出结果
echo json_encode($products);
?>
prepare
和 bind_param
)可以有效防止SQL注入。通过以上方法,可以有效地实现PHP商品筛选功能,并解决常见的技术问题。
领取专属 10元无门槛券
手把手带您无忧上云