【问题标题】:Multiple conditions php/mysql多条件php/mysql
【发布时间】:2012-06-05 01:17:58
【问题描述】:

我正在对 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 子句,但效果不佳。

【问题讨论】:

  • SQL 注入。如果你使用 mysqli::real_query(...) 你很好
  • 你的问题还不清楚...

标签: php mysql sql


【解决方案1】:

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

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


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

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

$results = $query->execute();

【讨论】:

    【解决方案2】:
    where 
        (a =  '$a' or '$a' = '')
    and (b <= '$b' or '$b' = '')
    and (c >= '$c' or '$c' = '')
    

    注意,如果一个变量是一个空字符串,它的条件总是满足的。

    【讨论】:

      猜你喜欢
      • 2022-07-22
      • 2014-02-01
      • 2014-12-03
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      相关资源
      最近更新 更多