0

我正在对 php/mysql 进行多标准搜索,此搜索有 5 个条目: - 类型、最低价格 - 最高价格、最低数量 - 最高数量:

$Type = $_POST['Type'];
$Pmin = $_POST['Pmin'];
$Pmax = $_POST['Pmax'];
$Qtmin = $_POST['Qtmin'];
$Qtmax = $_POST['Qtmax'];
$query = "SELECT * FROM products where type_product='$Type' 
and price_min<='$Pmin' 
and price_max>='$Pmax'  
and qty_min<='$Qtmin' 
and qty_max>='$Qtmax' " ;

这工作得很好,但用户必须填写所有条目。我的想法是用户只能输入类型,或者类型和价格,或者只输入数量等等。我尝试使用 OR 子句,但我没有让它很好地工作。

4

2 回答 2

5

将您的查询分成几部分。在这种情况下使用查询程序集类更容易。当然还有 PDO。

$query->select('columns from MyTable')
 ->where('deleted = 0');


if (condition) {
  $query->where('field = ?', $value);
}

if (condition) {
  $query->where('field != ?', $value);
}

$results = $query->execute();
于 2012-06-04T15:08:46.150 回答
1
where 
    (a =  '$a' or '$a' = '')
and (b <= '$b' or '$b' = '')
and (c >= '$c' or '$c' = '')

请注意,如果变量是空字符串,则始终满足其条件。

于 2012-06-04T15:11:14.583 回答