按多个字段搜索。有时是一个领域,有时是一个领域

时间:2016-04-30 08:18:43

标签: php mysql

我有搜索表单。在这里多个领域。有时我会用一个字段表单提交,有时候表单提交两个,有时多个字段值。

     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'");
        }

    }

     这些查询仅用于单个字段的搜索。      如何进行通过一个或多个字段值执行搜索的查询      有可能??

3 个答案:

答案 0 :(得分:1)

您可以构建一个增量查询

fgets()

答案 1 :(得分: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);

注意:mysql_query()已在PHP 5.5中弃用,并在PHP 7中删除。请更新以使用PDO的mysqli库。

答案 2 :(得分:1)

我在这里使用了id列作为primary 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);
}