Трябва да направите промени в кода за list.php въз основа на входа, който получава чрез GET параметъра. нещо като:
if ($_GET['id'] == 'FREE'){
// do something like display FREE items
}
elseif($_GET['id'] == 'GIFT') {
// display GIFT items
}
else {
// perform some default action
}
Това е, за да стане още по-управляван от база данни (полезно, когато има много категории):
$sql = "select * from categories where id = '".$_GET['id']."'";
if (mysql_results($sql)){
// do something
}
else {
// show error
}
Имайте предвид, че това е само за демонстрация и във вашия код трябва да използвате PDO/MySQLI и подготвени изрази, а не функцията mysql_results.
В светлината на повече информация, предоставена от OP:Променете това
$articles = $article->fetch_all();
към
$articles = $article->fetch_data($_GET['id']);
в list.php и вижте дали получавате правилни резултати.