我是php和sql的新手;我正在编写一个SQL查询来显示以下逻辑的记录:
1。 sql表中有9个单元格。我想使用3个参数的组合搜索记录。这是在2个日期之间搜索,搜索位置和搜索属性类别类型。
2。搜索条件如下所示:
日期自:_________(日期选择器) - 截止日期:______________(日期选择器)
地点:Dropdown(dehi,mumbai,.....,)
物业类别类别:下拉(住宅,商业)
结果要求组合:
一个。全部3个组合True - (用户填写日期,位置,支持猫类型。)
湾这两种组合都是真的。 (用户只填写一个参数。)
℃。只有2个组合是真的。 (用户填写2个参数组合,即日期和地点(或)位置和属性类型(或)日期和属性类型)
问题: 我只能做一个组合......
这是我的sql查询和页面语法。:
if(isset($_POST['search'])){
$name=$_POST['search'];
$location=$_POST['select1'];
$date1=$_POST['d_dov1'];
$date2=$_POST['d_dov2'];
$categ=$_POST['category'];
$query="SELECT * FROM customer WHERE d_loc='$location' OR d_dov BETWEEN '$date1' AND '$date2' OR d_cate='$categ'";
$sql_Q=mysql_query($query); }else{
$Q_select = "Select * from customer Order by id DESC";
$sql_Q = mysql_query($Q_select) or die(mysql_error()); }
请在这方面提供帮助。
答案 0 :(得分:0)
您可以连接查询并执行此任务。
if(isset($_POST['search'])){
$name=$_POST['search'];
$location=$_POST['select1'];
$date1=$_POST['d_dov1'];
$date2=$_POST['d_dov2'];
$categ=$_POST['category'];
$query="SELECT * FROM customer WHERE id!=0";
if($location!=''){
$query.=" AND d_loc='$location'";
}
if($date1!='' && $date2!=''){
$query.= " AND d_dov BETWEEN '$date1' AND '$date2'";
}
if($categ!=''){
$query.= " AND d_cate='$categ'";
}
如果你选择查询连接的所有值。使用id!= 0背后的想法是连接查询.id是你表的主键。
您可以使用 AND 或 OR ,具体取决于您的需要。