2016-06-09 41 views
-1

我創建搜索表單,它的工作原理正確,但我想添加另一個字段用於搜索數據庫中任意列的一個字母。在一張桌子上的數據庫php多個輸入搜索表單

我要添加查詢:

mysqli_query($conn,"SELECT * FROM tbl_subcontractor where db_RelatedCustome like '%$search%' or db_LevelofPriority like '%$search%' or db_Category like '%$search%' or db_Subcategories like '%$search%' or db_ProductOrService like '%$search%' or db_CompanyName like '%$search%' or db_Namecontactperson like '%$search%' or db_evaluation like '%$search%' ")or die(mysqli_error($conn)); 

這個圖像解釋的形式:

這是我用的搜索代碼:

if(isset($_POST['submit'])) { 
     $RelatedCustome=$_POST['txt_RelatedCustomer']; 
     $LevelofPriority=$_POST['txt_LevelofPriority']; 
     $category=$_POST['txt_category']; 
     $subcategories=$_POST['txt_subcategories']; 
     $ProductOrService=$_POST['txt_ProductOrService']; 
     $CompanyName=$_POST['txt_CompanyName']; 
     $Namecontactperson=$_POST['txt_Namecontactperson']; 
     $evaluation=$_POST['txt_evaluation']; 
     $search=$_POST['txt_search']; 


    $q = array(); 
     $sql = ""; 
     if(isset($_POST['txt_RelatedCustomer']) && !empty($_POST['txt_RelatedCustomer'])){ 
     $RelatedCustome = mysqli_real_escape_string($conn,$_POST['txt_RelatedCustomer']); 
     $q[] = " db_RelatedCustome='".$RelatedCustome."' ";  
     } 
     if(isset($_POST['txt_LevelofPriority']) && !empty($_POST['txt_LevelofPriority'])){ 
     $LevelofPriority = mysqli_real_escape_string($conn,$_POST['txt_LevelofPriority']); 
     $q[] = " db_LevelofPriority='".$LevelofPriority."' ";  
     } 
      if(isset($_POST['txt_category']) && !empty($_POST['txt_category'])){ 
      $category = mysqli_real_escape_string($conn,$_POST['txt_category']); 
     $q[] = " db_Category='".$category."' ";  
     } 
      if(isset($_POST['txt_subcategories']) && !empty($_POST['txt_subcategories'])){ 
      $subcategories = mysqli_real_escape_string($conn,$_POST['txt_subcategories']); 
     $q[] = " db_Subcategories='".$subcategories."' ";  
     } 
      if(isset($_POST['txt_ProductOrService']) && !empty($_POST['txt_ProductOrService'])){ 
     $ProductOrService = mysqli_real_escape_string($conn,$_POST['txt_ProductOrService']);    
     $q[] = " db_ProductOrService='".$ProductOrService."' ";  
     } 
      if(isset($_POST['txt_CompanyName']) && !empty($_POST['txt_CompanyName'])){ 
      $CompanyName = mysqli_real_escape_string($conn,$_POST['txt_CompanyName']); 
     $q[] = " db_CompanyName='".$CompanyName."' ";  
     } 
      if(isset($_POST['txt_Namecontactperson']) && !empty($_POST['txt_Namecontactperson'])){ 
      $Namecontactperson = mysqli_real_escape_string($conn,$_POST['txt_Namecontactperson']); 
     $q[] = "db_Namecontactperson='".$Namecontactperson."' ";  
     } 
      if(isset($_POST['txt_evaluation']) && !empty($_POST['txt_evaluation'])){ 
      $evaluation = mysqli_real_escape_string($conn,$_POST['txt_evaluation']); 
     $q[] = "db_evaluation='".$evaluation."' ";  
     } 

     $first = true; 
     foreach($q as $qu){ 
      if($first){ 
      $sql .= " where ".$qu;  
      $first = false; 
      }else{ 
      $sql .= " and ".$qu;   
      } 
     } 
     echo $sql; 


     $result=mysqli_query($conn,"SELECT * FROM tbl_subcontractor {$sql}")or die(mysqli_error($conn)); 
     $count=mysqli_num_rows($result); 
     if($count==0){echo"no result.";} 
     else{ 
       echo"<table class='table table-hover table-responsive table-bordered' id='alternatecolor'>"; 
    echo"<tr>"; 
     echo" <td style='background:#f7ac01;font-size:16px;'>Related Customer</td> 
      <td style='background:#f7ac01;font-size:16px;'>Level of Priority</td> 
      <td style='background:#f7ac01;font-size:16px;'>Category</td> 
      <td style='background:#f7ac01;font-size:16px;'>Subcategory</td> 
      <td style='background:#f7ac01;font-size:16px;'>Product Or Service</td> 
      <td style='background:#f7ac01;font-size:16px;'>Company Name</td> 
      <td style='background:#f7ac01;font-size:16px;'>Name contact person</td> 
      <td style='background:#f7ac01;font-size:16px;'>Evaluation</td> 
      <td style='background:#f7ac01;font-size:16px;'>Phone</td> 
      <td style='background:#f7ac01;font-size:16px;'>Phone 2</td> 
      <td style='background:#f7ac01;font-size:16px;'>Whatsapp</td> 
      <td style='background:#f7ac01;font-size:16px;'>Mobile</td> 
      <td style='background:#f7ac01;font-size:16px;'>Web</td> 
      <td style='background:#f7ac01;font-size:16px;'>Location</td> 
      <td style='background:#f7ac01;font-size:16px;'>Comment</td> 
      "; 
    echo"</tr>"; 
     while($res=mysqli_fetch_array($result)){ 
     $RelatedCustome=$res['db_RelatedCustome']; 
     $LevelofPriority=$res['db_LevelofPriority']; 
     $category=$res['db_Category']; 
     $subcategories=$res['db_Subcategories']; 
     $ProductOrService=$res['db_ProductOrService']; 
     $CompanyName=$res['db_CompanyName']; 
     $Namecontactperson=$res['db_Namecontactperson']; 
     $evaluation=$res['db_evaluation']; 
     $phone=$res['db_Phone']; 
     $phone_2=$res['db_phone2']; 
     $whatsapp=$res['db_Phonewhatsapp']; 
     $mobile=$res['db_mobile']; 
     $web=$res['db_web']; 
     $location=$res['db_Location']; 
     $comment=$res['db_comment']; 


     echo"<tr>"; 
    echo"<td >"; echo $RelatedCustome; echo"</td>"; 
    echo"<td >"; echo $LevelofPriority; echo"</td>"; 
    echo"<td>"; echo $category; echo"</td>"; 
    echo"<td >"; echo $subcategories; echo"</td>"; 
    echo"<td >"; echo $ProductOrService; echo"</td>"; 
    echo"<td >"; echo $CompanyName; echo"</td>"; 
    echo"<td >"; echo $Namecontactperson; echo"</td>"; 
    echo"<td>"; echo $phone; echo"</td>"; 
    echo"<td>"; echo $phone_2; echo"</td>"; 
    echo"<td>"; echo $whatsapp; echo"</td>"; 
    echo"<td>"; echo $mobile; echo"</td>"; 
    echo"<td>"; echo $whatsapp; echo"</td>"; 
    echo"<td>"; echo $web; echo"</td>"; 
    echo"<td>"; echo $location; echo"</td>"; 
    echo"<td>"; echo $comment; echo"</td>"; 

    echo"</tr>";  

      }echo"</table>"; 
     }} 

如何混合用我的代碼查詢以獲得完美的結果。

+0

你想要做什麼?你想用這個代碼創建這個查詢嗎? – yafater

+0

是的請我想爲搜索字段添加此查詢示例:如果我在搜索字段中添加'e'並且其他字段爲空,則搜索結果將是數據庫中的所有數據都包含'e' – jad

+0

請回顯「SELECT * FROM tbl_subcontractor {$ sql}「並告訴我結果 – yafater

回答

0

我找到了解決辦法,這是謝你爲你的時間你給我的解決方案的想法

$qq=array(); 
      if(isset($_POST['txt_search']) && !empty($_POST['txt_search'])){ 
      $search = mysqli_real_escape_string($conn,$_POST['txt_search']); 
     $qq[] = "db_evaluation like '%".$search."%' "; 
     $qq[] = "db_Namecontactperson like '%".$search."%' "; 
     $qq[] = " db_CompanyName like '%".$search."%' "; 
     $qq[] = " db_ProductOrService like '%".$search."%' "; 
     $qq[] = " db_Subcategories like '%".$search."%' "; 
     $qq[] = " db_Category like '%".$search."%' "; 
     $qq[] = " db_LevelofPriority like '%".$search."%' "; 
     $qq[] = " db_RelatedCustome like '%".$search."%' "; 
     } 
    foreach($qq as $qu){ 
      if($second){ 
      $sql .= " where ".$qu;  
      $second = false; 
      }else{ 
      $sql .= " or ".$qu;   
      } 
     } 
+0

您可以通過執行來簡化它:implode('OR',$ qq)。 – Dave

0

所有您的Q陣列,你應該使用「%」這樣的

$q[] = "db_evaluation='%".$search."%'"; 

和這部分代碼更改爲

$first = true; 
foreach($q as $qu){ 
    if($first){ 
    $sql .= " where ".$qu;  
    $first = false; 
    }else{ 
    $sql .= " or ".$qu;   
    } 
} 
+0

dosen't工作我希望代碼我發佈stil工作的所有其他領域,但搜索輸入工作像我發佈的查詢所有在一個按鈕,但不同的查詢所有輸入字段和查詢輸入搜索字段 – jad

+0

我不明白你說什麼 – yafater

+0

代碼我張貼工作的所有輸入字段我希望它仍然工作在相同的結果,但我想添加代碼輸入搜索來搜索任何任何列中的字母 – jad

相關問題