搜索其中一个字段数据Php / Mysql

时间:2016-04-04 03:58:44

标签: php mysql

图片1 enter image description here

图片2 enter image description here

我正在使用我的搜索按钮,我想在我的数据库中搜索我的一个文本输入。如果我搜索特定数据,如填充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);

1 个答案:

答案 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."%' "
}

希望这有帮助