par
Ryle » 23 janv. 2010, 11:03
Juste une petit précision : pour ne pas lister deux fois des données identiques, il faut utiliser l'instruction DISTINCT. Le GROUP BY permet, comme son nom l'indique, de regrouper des données (lorsque l'on utilise une fonction de groupe : SUM, MAX, COUNT etc.).
$requete = mysql_query("SELECT DISTINCT cat FROM articles");
En revanche je ne comprend pas ce que tu veux obtenir... le dernier article de chaque catégorie ? de chaque sous-catégorie ? de chaque catégorie ET sous-catégorie ?
En effet, si tu veux par exemple le dernier article de chaque catégorie, alors tu peux utiliser group by et faire cela en une seule requête :
$requete = mysql_query("SELECT MAX(id), cat FROM articles GROUP BY cat");
Ceci te retournera l'id le plus haut (donc en théorie le plus récent) pour chacune des catégories
$requete = mysql_query("SELECT MAX(id), cat, sous-cat FROM articles GROUP BY cat, sous-cat ");
Te retournera l'id le plus haut pour chacune des sous-catégories, de chacune des catégories
Juste une petit précision : pour ne pas lister deux fois des données identiques, il faut utiliser l'instruction DISTINCT. Le GROUP BY permet, comme son nom l'indique, de regrouper des données (lorsque l'on utilise une fonction de groupe : SUM, MAX, COUNT etc.).
[php]$requete = mysql_query("SELECT DISTINCT cat FROM articles");[/php]
En revanche je ne comprend pas ce que tu veux obtenir... le dernier article de chaque catégorie ? de chaque sous-catégorie ? de chaque catégorie ET sous-catégorie ?
En effet, si tu veux par exemple le dernier article de chaque catégorie, alors tu peux utiliser group by et faire cela en une seule requête :
[php]$requete = mysql_query("SELECT MAX(id), cat FROM articles GROUP BY cat");[/php]
Ceci te retournera l'id le plus haut (donc en théorie le plus récent) pour chacune des catégories
[php]$requete = mysql_query("SELECT MAX(id), cat, sous-cat FROM articles GROUP BY cat, sous-cat ");[/php]
Te retournera l'id le plus haut pour chacune des sous-catégories, de chacune des catégories