首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用下拉选项过滤数据

问如何使用下拉选项过滤数据
EN

Stack Overflow用户
提问于 2014-09-22 14:21:49
回答 1查看 1.5K关注 0票数 0

我尝试使用dropdown选项过滤一些数据。当用户选择年/分部并单击筛选按钮时,它假定从数据库中读取包含该值的所有行。这是我所能做到的最远的地方,但它没有起作用。真的希望有人能帮助我。

代码语言:javascript
复制
 if (isset($_GET['do']))
{
    if($_GET['do'] == 'filter')
    {
        if( empty($_POST['key_year']))
        {
            redirect("list.php");
        }
        else
        {   
            $_SESSION['key_year'] = $_POST['key_year'];         
            $_SESSION['key_division'] = $_POST['key_division'];         
        }
    }
    else if($_GET['do'] == 'clear')
    {
        unset($_SESSION['key_year']);
        redirect("list.php");
    }
    else
    {}  
}
$limit = 10;    
$page = ( isset($_GET['page']) ) ? $_GET['page'] : 1;   
$end = ( isset($_GET['page']) ) ? ($limit * $_GET['page']) : $limit;
$offset = ( isset($_GET['page']) ) ? ($limit * $_GET['page']) - $limit : 0;
$start = $offset +1;
$next = $page + 1;
$prev = $page - 1;
$key_year = ( isset($_SESSION['key_year']) ) ? $_SESSION['key_year'] : '';
$key_year = ( isset($_SESSION['key_division']) ) ? $_SESSION['key_division'] : '';

$sql  = "SELECT * FROM tbl_perfomance ";
$sql .= "ORDER BY `p_aid` ASC";
$sql .= " LIMIT $offset, $limit";
$rs = mysql_query($sql);

$sql2="SELECT COUNT(p_aid) AS total FROM tbl_perfomance ";
if(isset($key_year) && isset($key_division))
{
    $sql2 .= "WHERE p_year LIKE '%$key_year%' AND p_division LIKE '%$key_division%'";
}
$rs2=mysql_query($sql2);
$getRec = mysql_fetch_assoc($rs2);
//total
$rowCount=$getRec['total'];
$end = ($end > $rowCount) ? $rowCount : $end;
$total_page = ceil($rowCount/$limit);

$for_start = ( $page <= 2 ) ? 1 : $page - 2;
$for_stop_tmp = $page + 2;
$for_stop  = ( $for_stop_tmp > $total_page ) ? $total_page : $page + 2; 

这是表格。

代码语言:javascript
复制
            <form name="filter" action="list.php?do=filter" method="GET">
                    </label>
                    <label style="color:darkgreen;float:left;width:11%" align="left">
                        Division
                        <select name="key_division">
                            <option value="All">All</option>
                            <option value="ITNT">ITNT</option>
                           <option value="ITP">ITP</option>
                        </select>
                    </label>     -->                
                    <label style="color:darkgreen;float:left;width:11%" align="left">                           
                        Year        
                        <select name="key_year">
                            <option value="all">All</option>
                            <option value="2014">2014</option>
                            <option value="2015">2015</option>
                        </select>
                    </label>
                    <label style="color:darkgreen;float:left;width:11%" align="left">
                    </label><br>
                        <input class="button_green" type="submit" value="Filter &raquo;" /> 

            </form> 
EN

回答 1

Stack Overflow用户

发布于 2014-09-22 14:42:25

我觉得您只是为分页sql添加条件,而不是为内容sql添加条件

试着像这样修改你的代码,这样你就有了合适的$sql1和$sql2。

代码语言:javascript
复制
$sql  = "SELECT * FROM tbl_perfomance ";

$sql2="SELECT COUNT(p_aid) AS total FROM tbl_perfomance ";
if(isset($key_year) && isset($key_division))
{
    $sql2 .= "WHERE p_year LIKE '%$key_year%' AND p_division LIKE '%$key_division%'";
    $sql1 .= "WHERE p_year LIKE '%$key_year%' AND p_division LIKE '%$key_division%'";
}

$sql .= "ORDER BY `p_aid` ASC";
$sql .= " LIMIT $offset, $limit";
$rs = mysql_query($sql);

$rs2=mysql_query($sql2);
$getRec = mysql_fetch_assoc($rs2);

完成后,回显这两个查询,并直接在php、myadmin或任何其他mysql工具中运行它们,以检查它们是否正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25967771

复制
相关文章

相似问题

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