我在php/mysql上进行多个critera搜索,这个搜索有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' " ;
Run Code Online (Sandbox Code Playgroud)
这很好用,但用户必须填写所有条目.我的想法是用户只能输入Type,Type和Price,或者只输入数量等等.我试图使用OR子句,但我没有让它运行良好.
将查询拆分为多个部分.对于诸如此类的场合,使用查询 - 汇编类更容易.当然还有PDO.
$query->select('columns from MyTable')
->where('deleted = 0');
if (condition) {
$query->where('field = ?', $value);
}
if (condition) {
$query->where('field != ?', $value);
}
$results = $query->execute();
Run Code Online (Sandbox Code Playgroud)