我有一个只有一个表的数据库,该表大约有 200 万行和 60 列。我创建了一个具有多个搜索过滤器的 php 应用程序,如姓名、国家、州、姓氏、域等,它们将在 HTML 表格中过滤和显示结果。
但问题是,每个文本字段只接受一个输入。我想在每个文本字段中给出多个输入,以逗号分隔。
例如:如果我搜索姓名:哈利职位:市场营销我得到结果.但我想要一个解决方案市: 孟买工作:市场营销,网页设计师,QA。(多个输入)
截图
法典:
Php/Mysql 查询代码
<?php
$res = false;
if(isset($_REQUEST['submit'])){
$FirstName=$_POST['FirstName'];
$LastName=$_POST['LastName'];
$Function=$_POST['Function'];
$State=$_POST['State'];
$Country =$_POST['Country'];
$Website =$_POST['Website'];
$sql=" SELECT * FROM hz WHERE FirstName like '%".$FirstName."%' AND LastName LIKE '%".$LastName."%' AND Function LIKE '%".$Function."%' AND State LIKE '%".$State."%' AND Country LIKE '%".$Country."%' AND Website LIKE '%".$Website."%'";
$q=mysqli_query($con, $sql);
}
else{
$res = true;
}
?>
PHP 搜索表单:
<form method="post" class="search">
<table width="200">
<td>
<tr><input class="form__input" type="search" name="FirstName" placeholder="First Name" value="<?php if(isset($FirstName)) echo $FirstName;?>" /></tr>
<tr><input class="form__input" type="search" name="LastName" placeholder="Last name" value="<?php if(isset($LastName)) echo $LastName;?>" /></tr><BR>
<tr><input class="form__input" type="search" name="Function" placeholder="Function" value="<?php if(isset($Function)) echo $Function;?>" /></tr><BR>
<tr><input class="form__input" type="search" name="State" placeholder="State" value="<?php if(isset($State)) echo $State;?>" /></tr><BR>
<tr><input class="form__input" type="search" name="Country" placeholder="Country" value="<?php if(isset($Country)) echo $Country;?>" /></tr><BR>
<tr><input class="form__input" type="search" name="Website" placeholder="Website" value="<?php if(isset($Website)) echo $Website;?>" /></tr><BR>
<tr><input type="submit" name="submit" value=" Search " class="button"/></tr>
</td>
</table>
附注:
$con = mysqli_connect("host","user","password", "databasename");
我得到了诸如使用爆炸函数,foreach等建议,但不知道如何在此代码中实现它。我该怎么办?
我觉得这家伙和你有同样的问题,有人给了他一个很好的答案:在 PHP 中创建搜索表单来搜索数据库?