如何让当前年份在MySQL中使用它作为过滤器?

时间:2014-10-03 23:37:12

标签: php mysql get onchange

在我的页面上,我显示了许多结果。我希望访问者能够根据年份对结果应用过滤器。因此,如果用户选择过滤器" 2014"只显示2014年的结果。

到目前为止,我已经为SQL创建了这个:

$sql="SELECT * FROM $tbl_name";
   if ($_GET['year'] == '2013')
     {
     $sql .= " AND year=2013 ORDER BY date DESC";
     }
   elseif ($_GET['year'] == '2014')
     {
     $sql .= " AND year=2014 ORDER BY date DESC";
     }

过滤器由<a href>标记触发,如下所示:

<select onChange="window.open(this.options[this.selectedIndex].value,'_self')"> 
<option value="page.php?year=2013">2013</option>
<option value="page.php?year=2014">2014</option>
</select>

基本上,onChange使用_GET方法重新加载页面,设置年份。

这一切都很好。除了一件事。我需要每年手动更改代码,以便使用当前年份更新选项值。所以,一旦新的一年开始,我就会自己更新代码。有没有办法自动执行此操作?

更新

我有这个脚本创建选项标记,从2012年开始到当年结束:

var filteryear = '2012';
var filtertill = new Date().getFullYear();
var foptions = "";
for(var fy=filteryear; fy<=filtertill; fy++){
  foptions += "<option value='urenregistratie_all.php?jaar="+ fy +"'>"+ fy +"</option>";
}
document.getElementById("filteryear").innerHTML = foptions;

所以问题不在<option>部分,MySQL部分应随之增加......

1 个答案:

答案 0 :(得分:2)

尝试使用类似的东西:

<强> HTML

<select onChange="window.open(this.options[this.selectedIndex].value,'_self')"> 
<?php
$year = 2013;
while($year <= date('Y')){
    echo '<option value="page.php?year='.$year.'">'.$year.'</option>';
    $year++;
}
?>
</select>

<强> PHP

$sql="SELECT date,year FROM $tbl";

$year = 2013;

while($year <= date('Y')){
   if($year == $_GET['year']){
      $sql .= " AND year=$year ORDER BY date DESC";
   }
   $year++;
}