Amélioration de requete PHP/MySQL [PHP] - PHP - Programmation
Marsh Posté le 28-12-2002 à 12:44:46
J'en pense que ca va pas du tout
Là, tu fais autant de requêtes qu'il y a de sujets
Alors que ca peut être fait en une seule requête :
SELECT sujets.titre, sujets.id_sujet, max(messages.date) AS DerniereDate
FROM sujets, messages
WHERE sujets.categorie ='$categorie'
AND sujets.id_sujet = messages.id_sujet
GROUP BY sujets.id_sujet
Marsh Posté le 28-12-2002 à 03:29:39
Bonjour, je voudrais savoir si vous aviez une façon plus élégante pour traiter ce genre de requete:
une partie de la structure de mon forum
-------------- --------------
| sujets | | messages |
-------------- --------------
|id_sujet | |id_message |
|id_categorie| |id_sujet |
|titre | |date |
... ...
Je fais un requete qui m'affiche les titres de tous les sujets de la categorie:
puis dans la boucle je fais une 2eme requete pour afficher la date du dernier message de chaque sujet.
$requete=mysql_query("SELECT titre, id_sujet FROM sujets WHERE categorie ='$categorie'" );
while ($ligne=mysql_fetch_array($requete)){
$requete2=mysql_query("SELECT date FROM messages WHERE id_sujet='$ligne[id_sujet]' ORDER BY date DESC LIMIT 1" );
// affichage
}
est il possible de faire tout ca en une seule requete?
en fait je me pose cette question, parce que j'ai l'impression que je sollicite trop la base de données (la requete à l'intérieur de la boucle...)
keske cs en pensez?