首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由多个字段搜索。有时由一个字段,有时多个字段

由多个字段搜索。有时由一个字段,有时多个字段
EN

Stack Overflow用户
提问于 2016-04-30 08:18:43
回答 3查看 57关注 0票数 4

我有搜查表。在这里多个领域。有时我会用一个字段形成提交,有时用两个字段值提交,有时使用多个字段值。

代码语言:javascript
复制
     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'");
        }

    }
代码语言:javascript
复制
  these query only for search by single field.      how to make query that performs searching by one or multiple field value      is it possible??
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-30 08:38:24

在查询变量中使用串联

代码语言:javascript
复制
 $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:mysql_query()在PHP5.5中被废弃,在PHP7中被删除。请使用PDO的mysqli库进行更新。

票数 1
EN

Stack Overflow用户

发布于 2016-04-30 08:34:51

您可以构建increntale查询。

代码语言:javascript
复制
<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
EN

Stack Overflow用户

发布于 2016-04-30 08:39:33

在这里,我使用列id作为primary key & auto-increment。根据您的列名更改它。

代码语言:javascript
复制
$query = "SELECT * FROM project_list WHERE id is not null";

代码语言:javascript
复制
<?
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);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36952539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档