Как сделать сортировку в контейнере news, в бд есть поле yaer, задача: вывод публикаций по годам

Suleiman

Новичок
Я сделал так но допустил ошибки, как правильно сделать сортировку
PHP:
switch(isset($_GET['act']) ? $_GET['act'] : 'default') 
    { 
        case 'kat':  
        default: 
         
            $sql = $mysqli -> query("SELECT * FROM `categoryes` ORDER BY `id` ASC"); 
             
            while($news = $sql -> fetch_assoc()) 
            { 
                echo'<table width="660" height="66"  cellpadding="2"><tr><th width="497" height="56" align="left" valign="top" scope="row"><a href="?act=news&amp;id='.$news['id'].'">'.$news['name'].' <br><small> Всего интервью: '.$news['count'].'</small></a></p></th>'; 
             if(!empty($news['img'])){ echo'<td width="89"><a href="?act=news&amp;id='.$news['id'].'"><img class="img" src="'.$news['img'].'" width="132" border="0" height="69"></a></tr>';} 
               echo '</table><div class ="ftext"></div>'; 
                   } 
             
        break; 
        break; 
         
        case 'news': 

            $id = abs(intval($_GET['id'])); 
             
            $sql = $mysqli -> query("SELECT * FROM `news1` WHERE `tid` = $id ORDER BY `date` DESC"); 
echo '<div class="pos"><div class="pos-inner">'; 
# Сортировка по годам
echo '<form action="?" method="get"><select name="year">'; 
echo '<option '.($_GET['sort'] == 'year' ? 'selected="selected"' : false).' value="2012">Публикация 2012</option>'; 
echo '<option '.($_GET['sort'] == 'year' ? 'selected="selected"' : false).' value="2011">Публикация 2011</option>'; 
echo '</select><input type="submit" value="Сортировать"/></form>'; 
echo '</div></div>'; 
            while($result = $sql -> fetch_assoc()) 
            { 
                echo'<table width="660" height="66"  cellpadding="2"><tr><th width="497" height="56" align="left" valign="top" scope="row"> <a href="?act=theme&amp;id='.$result['id'].'">'.$result['name'].'</a></p></th></table><div class ="ftext"></div>'; 
                 
}break; 
         
        case 'theme': 
         
            $id = abs(intval($_GET['id'])); 
             
            $sql = $mysqli -> query("SELECT * FROM `theme` WHERE `id` = $id"); 
             
            $theme = $sql -> fetch_assoc(); 
             
            echo $theme['text']; 
         
        break; 
         
    } 
?>
 

radioheaded

PHP нуб
О, игра «найди ошибку», что-то новенькое!

Я начну. Нет открывающего тега PHP, но есть закрывающий.
 

Suleiman

Новичок
Сортировка не работает так как не логично ее сделал, помогите правильно сделать сортировку..
 

radioheaded

PHP нуб
Может тебе все-таки фильтрация нужна, а не сортировка? Там в месиве букв сложно угадать твои намерения, но все же.
 

Suleiman

Новичок
Значит фильтрация)) и еще покажите отличие между фильтрацией и сортировкой
В бд есть таблица news1 поле `year` ,по нему надо сделать фильтрацию там указаны года
 

sakon

П..и.н..ок
Сортировка - последовательность представления данных
Фильтрация - выбор по параметрам.
if (!empty($_GET['sort'])){
$sql = "SELECT * FROM `news1` WHERE `tid` = $id AND `year` = $_GET['sort'] ";
} else{
$sql = "SELECT * FROM `news1` WHERE `tid` = $id ORDER BY `date` DESC";
}
 
Сверху