2016-04-30 14 views
2

Ich habe Suchformular. hier mehrere Felder. manchmal werde ich einreichen mit einem Feld, manchmal Formular mit zwei und manchmal mehrere Feld Wert einreichen.Suche nach mehreren Feldern. manchmal durch ein Feld und manchmal mehr als ein Feld

 if (isset($_POST['search'])) { 
     $projectName  = $_POST['pName']; 
     $clientId  = $_POST['s_by_clientName']; 
     $departmentId = $_POST['s_by_department']; 
     $statusName = $_POST['s_by_status']; 
     if (!empty($projectName)) 
     { 
      $searchSql = mysql_query("select * from project_list where projectName='$projectName'"); 
     } 

     if (!empty($clientId)) 
     { 
      $searchSql = mysql_query("select * from project_list where client_id='$clientId'"); 
     } 

     if (!empty($departmentId)) 
     { 
      $searchSql = mysql_query("select * from project_list where department_id='$departmentId'"); 
     } 

     if (!empty($statusName)) 
     { 
      $searchSql = mysql_query("select * from project_list where status='$statusName'"); 
     } 

    } 

diese Abfrage nur für von Einfeldsuche. wie Abfrage, die Suche nach einem oder mehreren Feld Wert führt ist es möglich ?? mysql_query() wurde in PHP 5.5 und entfernt in PHP 7 als veraltet:

+1

mysql_query() wurde in PHP 5.5 und entfernt in PHP 7. bitte an Ihren Code aktualisieren verwenden Mysqli Bibliothek von PDO veraltet. Versuchen Sie, die Suchparameter in einem Array zu speichern, und fügen Sie sie mit AND oder OR in Ihre Abfrage ein, wenn mehr als ein Feld übergeben wurde. – Shubhamoy

+0

oh ja ... es ist ein bestehendes Projekt. einfach anpassen –

Antwort

1

Verwenden Verkettungs in Abfrage Variable

$searchSql ="select * from project_list where 1=1 "; 
if (isset($_POST['search'])) { 
    $projectName  = $_POST['pName']; 
    $clientId  = $_POST['s_by_clientName']; 
    $departmentId = $_POST['s_by_department']; 
    $statusName = $_POST['s_by_status']; 
    if (!empty($projectName)) 
    { 
     $searchSql. = " AND projectName='$projectName'"; 
    } 
    if (!empty($clientId)) 
    { 
     $searchSql. = " AND client_id='$clientId'"; 
    } 
    if (!empty($departmentId)) 
    { 
     $searchSql. = " AND department_id='$departmentId'"; 
    } 
    if (!empty($statusName)) 
    { 
     $searchSql. = " AND status='$statusName'"; 
    } 
} 
$result=mysql_query($searchSql); 

HINWEIS bauen. Bitte aktualisieren Sie, um die mysqli-Bibliothek von PDO zu verwenden.

+0

Vielen Dank so Mutch ... @ Sanooj T –

+0

Sie sind herzlich eingeladen, mein Freund –

+0

")" keine Notwendigkeit, die Klammer am Ende der Abfrage zu schließen –

1

Sie können eine increntale Abfrage

<code> 
if (isset($_POST['search'])) { 
    $projectName  = $_POST['pName']; 
    $clientId  = $_POST['s_by_clientName']; 
    $departmentId = $_POST['s_by_department']; 
    $statusName = $_POST['s_by_status']; 
    $my_sql = "select * from project_list "; 
    $my_where = ""; 
    if (!empty($projectName)) 
    { 
     if ($my_where = ""){ 
      $my_sql .= "where "; 
     } else { 
      $my_sql .= "and "; 
     } 
     $my_sql .= "projectName='$projectName'"; 

    } 
    if (!empty($clientId)) 
    { 

     if ($my_where = ""){ 
      $my_sql .= "where "; 
     } else { 
      $my_sql .= "and "; 
     } 
     $my_sql .= "client_id='$clientId'"; 

    } 
    if (!empty($departmentId)) 
    { 
     if ($my_where = ""){ 
      $my_sql .= "where "; 
     } else { 
      $my_sql .= "and "; 
     } 
     $my_sql .= "department_id='$departmentId'"; 


    } 
    if (!empty($statusName)) 
    { 
     if ($my_where = ""){ 
      $my_sql .= "where "; 
     } else { 
      $my_sql .= "and "; 
     } 
     $my_sql .= "status='$statusName'"; 

    } 
} 

1

Hier verwendete ich Spalte id als primary key & auto-increment. Ändern Sie es gemäß Ihrem Spaltennamen.

$query = "SELECT * FROM project_list WHERE id is not null"; 

-Code

<? 
if (isset($_POST['search'])) { 
    $projectName  = $_POST['pName']; 
    $clientId  = $_POST['s_by_clientName']; 
    $departmentId = $_POST['s_by_department']; 
    $statusName = $_POST['s_by_status']; 

    // Here I used coloumn 'id' as primary key & auto-increment. Change it as per your column name. 
    $query = "SELECT * FROM project_list WHERE id is not null" 

    if (!empty($projectName)) 
    { 
     $query. = " AND projectName='".$projectName."'"; 
    } 
    if (!empty($clientId)) 
    { 
     $query. = " AND client_id='".$clientId."'"; 
    } 
    if (!empty($departmentId)) 
    { 
     $query. = " AND department_id='".$departmentId."'"; 
    } 
    if (!empty($statusName)) 
    { 
     $query. = " AND project_list='".$statusName."'"; 
    } 

    $searchSql = mysql_query($query); 
} 
Verwandte Themen