[PHP] Amélioration de requete PHP/MySQL

Amélioration de requete PHP/MySQL [PHP] - PHP - Programmation

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?

Reply

Marsh Posté le 28-12-2002 à 03:29:39   

Reply

Marsh Posté le 28-12-2002 à 12:44:46    

J'en pense que ca va pas du tout :D  
Là, tu fais autant de requêtes qu'il y a de sujets :pt1cable:  
 
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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed