多关键字/条件搜索(和、或无值输入标记)PHP MySQL
我是PHP MySQL的初学者。这将是太长的时间来解释,我有很多不太可能多关键字/条件搜索(和、或无值输入标记)PHP MySQL,php,mysql,Php,Mysql,我是PHP MySQL的初学者。这将是太长的时间来解释,我有很多不太可能错误,但在条件下的一些错误。我发现触发该问题的原因是,我发现它更可能出现在和,或,输入标记无值中 场景 我有一个多输入的搜索表单。 让我们假设这是搜索表单,我无法发送图像,因为声誉很低 G-Number:[\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 名称:[\uuuuuuuuuuuuuuuuuuuuuuuu
错误
,但在条件下的一些错误
。我发现触发该问题的原因是,我发现它更可能出现在和,或,输入标记无值中
场景
我有一个多输入的搜索表单。
让我们假设这是搜索表单,我无法发送图像,因为声誉很低
G-Number:[\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
名称:[\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
虚拟号码:[\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
[搜索按钮]
**HTML FORM**
<form class="form-inline" role="form" method="GET" id="searchform">
<div class="form-group">
<input type="text" class="form-control" name="gnumber" placeholder="Number" style="margin-right: 2em;" >
<input type="text" class="form-control" name="name" placeholder="Input First or Last Name" style="width: 300px;margin-right: 2em;">
<input type="text" class="form-control" name="virtual" placeholder="Virtual Number" style="margin-right: 2em;">
<br/><h5 style="float:right;"><button type="submit" class="btn btn-theme02" name="search" ><i class="fa fa-check">Search</i></button></h5>
</div>
**THE PHP CODE**
if (isset($_GET['search'])) {
$gnum = htmlentities(mysql_real_escape_string($_GET['gnumber']));
$name = htmlentities(mysql_real_escape_string($_GET['name']));
$vr = htmlentities(mysql_real_escape_string($_GET['virtual']));
if (empty($globe) && empty($name) && empty($vr)) {
echo "<script> alert('Please select atleast 1 filter!')</script>";
exit;
} else {
$sql = "SELECT * FROM `subscribers` WHERE `fName` = '".$name."' OR `gNumber` = '".$gnum."' OR `virtualNumber` = '".$vr."' ";
}
if ($result=mysql_query($sql)) {
$query_num_rows = mysql_num_rows($result);
if($query_num_rows == 0){
echo "<script> alert('No Records Found!')</script>";
} else {
while($row=mysql_fetch_array($result)){
// echo of result table is here.
使用或条件
让我们假设我在G-Number中输入123456
,查询结果如下:
________________________________________
|G-Number | Name | Virtual Number |
---------------------------------------------------------------
|123456 |约翰| 001abc |
因此,如果只在Name中输入John
,在G-Number中输入123456
。这里的错误显示所有John
甚至我输入的123456
都是G号。
这样的样本结果
GNumber | Name |虚拟号码
123456 | John | 001abc
535243 |约翰| 002efg
965235 |约翰| 002efg
使用和条件
在这里,我需要填写所有的搜索表单,以便它可以搜索,如果我留下一个空白,它将从我的系统中显示base,即未找到任何结果
基本上,如果我只在G-Number中输入123456
,并将input
留空,它将无法搜索结果,因此在SQL查询中看起来代码就是这样的
SELECT * FROM `subscribers` WHERE `fName` = '' AND `gNumber` = '123456' AND `virtualNumber` = '';
所以基本上,离开输入表单的值是空格或类似的'
这就是我寻求帮助和提示的原因。我现在不想使用**MySQLi**
和**PDO**
。我还在练习**MySQL**
。我想在这里功能多关键字搜索
这是我的代码:
**HTML FORM**
<form class="form-inline" role="form" method="GET" id="searchform">
<div class="form-group">
<input type="text" class="form-control" name="gnumber" placeholder="Number" style="margin-right: 2em;" >
<input type="text" class="form-control" name="name" placeholder="Input First or Last Name" style="width: 300px;margin-right: 2em;">
<input type="text" class="form-control" name="virtual" placeholder="Virtual Number" style="margin-right: 2em;">
<br/><h5 style="float:right;"><button type="submit" class="btn btn-theme02" name="search" ><i class="fa fa-check">Search</i></button></h5>
</div>
**THE PHP CODE**
if (isset($_GET['search'])) {
$gnum = htmlentities(mysql_real_escape_string($_GET['gnumber']));
$name = htmlentities(mysql_real_escape_string($_GET['name']));
$vr = htmlentities(mysql_real_escape_string($_GET['virtual']));
if (empty($globe) && empty($name) && empty($vr)) {
echo "<script> alert('Please select atleast 1 filter!')</script>";
exit;
} else {
$sql = "SELECT * FROM `subscribers` WHERE `fName` = '".$name."' OR `gNumber` = '".$gnum."' OR `virtualNumber` = '".$vr."' ";
}
if ($result=mysql_query($sql)) {
$query_num_rows = mysql_num_rows($result);
if($query_num_rows == 0){
echo "<script> alert('No Records Found!')</script>";
} else {
while($row=mysql_fetch_array($result)){
// echo of result table is here.
你必须遵循这种方法。我真的不知道Php语法。但方法应该是这样的 为什么不动态生成此sql查询。假设GNumber字段为空,则将其从sql语句中排除。比如$sql=“SELECT*FROMsubscribers
WHEREfName
=”“$name.”和virtualNumber
=”“$vr.”@纳文:谢谢你,但如何排除,你是什么意思?@Naveen:明白了,更多否则如果正确?很长的过程,对吧?因为你的代码是针对参数的。否则,通常会在映射中获取参数列表,并用很少的代码行遍历该列表。这也为将来节省了你的时间。当筛选参数增长时,您不需要添加更多其他内容的原因。@Naveen:明白了,您现在可以发布此消息了。我正在像这样使用您的提示如果(!empty)为什么不动态生成此sql查询。假设GNumber字段为空,则将其从sql语句中排除。比如$sql=“SELECT*FROMsubscribers
WHEREfName
=”“$name.”和virtualNumber
=”“$vr.”@纳文:谢谢你,但如何排除,你是什么意思?@Naveen:明白了,更多否则如果正确?很长的过程,对吧?因为你的代码是针对参数的。否则,通常会在映射中获取参数列表,并用很少的代码行遍历该列表。这也为将来节省了你的时间。当你的过滤参数增加时,你不需要再添加其他内容的原因。@Naveen:明白了,你现在可以发布这个了,我正在使用你的提示,如果(!empty)