Du skal lave ændringer i koden for list.php baseret på input den får gennem GET parameter. noget som:
if ($_GET['id'] == 'FREE'){
// do something like display FREE items
}
elseif($_GET['id'] == 'GIFT') {
// display GIFT items
}
else {
// perform some default action
}
Dette er for at gøre det endnu mere databasedrevet (nyttigt, når der er mange kategorier):
$sql = "select * from categories where id = '".$_GET['id']."'";
if (mysql_results($sql)){
// do something
}
else {
// show error
}
Bemærk, at dette kun er til demo, og i din kode skal du bruge PDO/MySQLI og forberedte sætninger og ikke mysql_results-funktionen.
I lyset af mere information fra OP:Change this
$articles = $article->fetch_all();
til
$articles = $article->fetch_data($_GET['id']);
i list.php og se om du får korrekte resultater.