Vous devez apporter des modifications au code de list.php en fonction de l'entrée qu'il reçoit via le paramètre GET. quelque chose comme :
if ($_GET['id'] == 'FREE'){
// do something like display FREE items
}
elseif($_GET['id'] == 'GIFT') {
// display GIFT items
}
else {
// perform some default action
}
Ceci afin de le rendre encore plus axé sur la base de données (utile lorsqu'il existe de nombreuses catégories) :
$sql = "select * from categories where id = '".$_GET['id']."'";
if (mysql_results($sql)){
// do something
}
else {
// show error
}
Notez qu'il s'agit uniquement d'une démonstration et que dans votre code, vous devez utiliser PDO/MySQLI et les instructions préparées et non la fonction mysql_results.
À la lumière de plus d'informations fournies par OP :Changer ceci
$articles = $article->fetch_all();
à
$articles = $article->fetch_data($_GET['id']);
dans list.php et voyez si vous obtenez des résultats corrects.