2016-04-30 19 views
2

私は検索フォームを持っています。ここには複数のフィールドがあります。時には私は1つのフィールドを使って提出することもあります。時には2つの、時には複数のフィールド値を使って提出することもあります複数のフィールドで検索します。時には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 = 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'"); 
     } 

    } 

だけ単一フィールドによる検索のためにこれらのクエリ。 1つまたは複数のフィールド値で検索するクエリを作成する方法 可能ですか?

+1

するmysql_query()は、PHP 5.5で非推奨と親切にPDOのmysqliのライブラリを使用するようにコードを更新PHP 7で削除されました。検索パラメータを配列に格納し、複数のフィールドが入力された場合は、クエリでANDまたはORを使用して追加してください。 – Shubhamoy

+0

ああそう...それは既存のプロジェクトだ。ちょうど簡単にカスタマイズする –

答えて

1

使用連結を構築することができますするmysql_query()は、PHP 5.5で非推奨とPHP 7で削除されました。親切にPDOのmysqliライブラリを使用するように更新します。

+0

ありがとう、あなたのおかげで... @ Sanooj T –

+0

あなたは私の友人を歓迎しています –

+0

")"クエリの最後に閉じ括弧は必要ありません –

1

あなたは、クエリ変数

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

NOTEにincrentaleクエリ

<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

ここでは、idprimary key & auto-incrementとして使用しました。列名ごとに変更してください。

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

コード

<? 
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); 
} 
関連する問題