多个关键字/条件搜索(AND,OR,无值输入标记)PHP MySQL

时间:2015-10-28 04:52:19

标签: php mysql

我是PHP MySQL的初学者。要解释太久了,我很可能errorconditions中出现了错误。我发现触发问题,我发现它更有可能出现在 AND OR Input tag no value

方案
我有一个包含多个输入的搜索表单。 让我们假装这是搜索表单,由于声誉低,我无法发送图片。

  

G-Number: [________](这是我数据库中的唯一键)
  姓名: [__________]
  虚拟号码: [__________]
   [搜索按钮]


使用OR条件
让我们假装我在 G-Number 中输入123456将像这样查询:

  

________________________________________
  | G-数|名称|虚拟号码|
------------------------------------------- ---------------------
  | 123456 |约翰| 001abc |

因此,如果仅在名称中输入John,在 G-Number 中输入123456。这里的错误显示所有John,即使我在G号码中输入123456 样本结果

  

GNumber |名称|虚拟号码
  123456 |约翰| 001abc
  535243 |约翰| 002efg
  965235 |约翰| 002efg

使用AND条件

在这里,我需要填写所有搜索表单以便搜索它,如果我留空,它会在我的系统中说No result Found
基本上,如果我只在 G-Number 中输入123456并保留input空白,则无法搜索结果,因此SQL query中的代码看起来就像这样

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.

谢谢。

$ sql =“SELECT * FROM subscribers WHERE”;

        if (empty($globe) && empty($name) && empty($vr)) {
         echo "<script> alert('Please select atleast 1 filter!')</script>";  
         exit;
        } 
        if(!empty($name)){
            $sql .append(`fName` = '".$name."'); 
        } 
        if(!empty($gnum)){
                  $sql .append(`gNumber` = '".$gum."');
        }

你必须遵循这种方法。我真的不知道Php语法。但方法应该是这样的。

0 个答案:

没有答案