我正在使用我的搜索按钮,我想在我的数据库中搜索我的一个文本输入。如果我搜索特定数据,如填充3列正在工作。但是当我要逐个搜索数据时,会显示所有数据。 例如我只搜索“会计部门”,然后会计部门都应该出现,但是当我这样做时,会显示其他部门。如果我只点击选定日期,则会显示所有日期。仅搜索id正在工作,但部门和日期不是。
这是我的HTML代码:如果我只选择搜索部门,那么它应该显示匹配的记录和日期。
<form name="searchitem" method="POST">
<input type="text" name="searchid">
Department : <select name="department">
<option>Select Department</option>
<option value="MIS">MIS</option>
<option value="ACCOUNTING">ACCOUNTING</option>
<option value="CNC">CNC</option>
<option value="CONCESSION">CONCESSION</option>
<option value="INVENTORY">INVENTORY</option>
<option value="HR">HR</option>
<option value="WAREHOUSE">WAREHOUSE</option>
<option value="SALES & MARKETING">SALES & MARKETING</option>
</select>
Date Added : <input type="text" id = "datepicker" name="dateadd"><br><br>
<input type="submit" name="submit" value="Search">
我的Php/Mysql
代码:我不知道这里的逻辑有什么问题:这应该有效。仅选择搜索一个字段时显示输出,当我运行它时,显示所有数据。我知道你可以帮我这个。
$sql = "SELECT * FROM item_tb WHERE id like '%".$searchid."%' and department like '%".$department."%' and dateadd like '%".$dateadd."%' or id like '%".$searchid."%' or department like '%".$department."%' or date add like '%".$dateadd."%'";
$result = $conn->query($sql);
答案 0 :(得分:0)
必须更改编写查询的方式。我们还需要使用一些PHP代码才能使其正常工作。
$sql = "SELECT * FROM item_tb where 1=1 ";
if($_POST["searchid"]){
$sql .= " and id '%".$searchid."%' "
}
if($_POST["department"]){
$sql .= " and department '%".$department."%' "
}
if($_POST["dateadd"]){
$sql .= " and dateadd'%".$dateadd."%' "
}
希望这有帮助