Bonjour,
Sur un site que je developpe je dois faire un espace de téléchargement avec plusieurs rubriques.
Sur le site je dois afficher les 3 derniers fichiers de chaque rubriques...
Malheureusement je ne peux pas le faire directement en une seule requete. J'ai donc deux solutions :
1 ere requete pour avoir toutes les rubriques et ensuite une requete par rubrique pour avoir les 3 derniers fichiers.
Donc si j'ai 10 rubriques j'ai au moins 11 requetes.
Autre solution faire un requete du style :
Code : Tout sélectionner
SELECT id, fichier, id_rubrique FROM fichiers ORDER BY id_rubrique ASC, date_upload DESC
Et ensuite, lors du traitement de la requete détecter le changement de rubriques et n'afficher que 3 résultats par rubrique.
Ce qui donne en gros :
<?php
$requeteFichiers = mysql_query("SELECT id, fichier, rubrique FROM tbl_fichiers ORDER BY rubrique ASC, date_upload DESC");
$rubriqueEnCours = "";
while ($resFichiers = mysql_fetch_assoc($requeteFichiers)) {
/* TEST CHANGEMENT DE RUBRIQUE */
if ($rubriqueEnCours != $resFichiers['rubrique']) {
echo "Nouvelle rubrique : ".$resFichiers['rubrique'];
$cptFichier = 0;
$rubriqueEnCours = $resFichiers['rubrique'];
}
/* AFFICHAGE DES FICHIERS */
if ($cptFichier < 3) {
echo "- Le fichier : ".$resFichiers['fichier']."<br />";
$cptFichier ++;
}
}
?>
Ce n'est pas une très grosse requete non plus, mais s'il y a une 20aine de fichier par rubrique je suis à 200 résultats.
Pensez-vous donc qu'une seule requete de 200 résultats sera plus rapide à traiter que 10 requetes de 3 résultats ?
Merci de vos réponses.