2016-06-09 3 views
-1

검색 양식을 만들고 정확하게 작동하지만 데이터베이스의 모든 열에있는 문자를 검색하기위한 다른 필드를 추가하고 싶습니다.하나의 테이블에 PHP 다중 입력 검색 양식

이것은 내가 추가 할 쿼리

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>"; 
     }} 
:

이 내가 검색에 사용되는 코드는 다음과 같습니다

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)); 

이 이미지는 형태를 설명

어떻게 혼합 할 수 있습니까? 완벽한 결과를 얻으려면 내 코드로 쿼리하십시오.

+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[] = "db_evaluation='%".$search."%'"; 

처럼 사용 '%'를해야하며,

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

dosen't work 나는 다른 모든 필드에 대해 stil 작업을 게시했지만 쿼리 입력과 같은 검색 입력 작업은 버튼 하나에 있지만 다른 쿼리에 대해서는 befor를 게시했습니다. 모든 입력 필드 및 입력 검색 필드에 대한 쿼리 – jad

+0

당신이 말하는 것을 이해하지 못합니다. – yafater

+0

코드는 모든 입력 필드에 대해 작업을 게시했습니다. 여전히 같은 결과에서 작동하지만 입력 검색에 코드를 추가하여 원하는 검색을하고 싶습니다. 어떤 열의 글자 – jad