Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多关键字/条件搜索(和、或无值输入标记)PHP MySQL_Php_Mysql - Fatal编程技术网

多关键字/条件搜索(和、或无值输入标记)PHP MySQL

多关键字/条件搜索(和、或无值输入标记)PHP MySQL,php,mysql,Php,Mysql,我是PHP MySQL的初学者。这将是太长的时间来解释,我有很多不太可能错误,但在条件下的一些错误。我发现触发该问题的原因是,我发现它更可能出现在和,或,输入标记无值中 场景 我有一个多输入的搜索表单。 让我们假设这是搜索表单,我无法发送图像,因为声誉很低 G-Number:[\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 名称:[\uuuuuuuuuuuuuuuuuuuuuuuu

我是PHP MySQL的初学者。这将是太长的时间来解释,我有很多不太可能
错误
,但在
条件下的一些错误
。我发现触发该问题的原因是,我发现它更可能出现在
输入标记无值中

场景
我有一个多输入的搜索表单。 让我们假设这是搜索表单,我无法发送图像,因为声誉很低

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*FROM
subscribers
WHERE
fName
=”“$name.”和
virtualNumber
=”“$vr.”@纳文:谢谢你,但如何排除,你是什么意思?@Naveen:明白了,更多
否则如果
正确?很长的过程,对吧?因为你的代码是针对参数的。否则,通常会在映射中获取参数列表,并用很少的代码行遍历该列表。这也为将来节省了你的时间。当筛选参数增长时,您不需要添加更多其他内容的原因。@Naveen:明白了,您现在可以发布此消息了。我正在像这样使用您的提示如果(!empty)为什么不动态生成此sql查询。假设GNumber字段为空,则将其从sql语句中排除。比如$sql=“SELECT*FROM
subscribers
WHERE
fName
=”“$name.”和
virtualNumber
=”“$vr.”@纳文:谢谢你,但如何排除,你是什么意思?@Naveen:明白了,更多
否则如果
正确?很长的过程,对吧?因为你的代码是针对参数的。否则,通常会在映射中获取参数列表,并用很少的代码行遍历该列表。这也为将来节省了你的时间。当你的过滤参数增加时,你不需要再添加其他内容的原因。@Naveen:明白了,你现在可以发布这个了,我正在使用你的提示,如果(!empty)