Как получить текущий год, чтобы использовать это в качестве фильтра в MySQL?

На моей странице я отображаю ряд результатов. Я хочу, чтобы посетитель мог применить фильтр к результатам в зависимости от года. Таким образом, если пользователь выбирает фильтр «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 часть, которая должна увеличиться с этим …

0

Решение

попробуйте использовать что-то вроде этого:

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++;
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]