2010-10-21 5 views
-1

voici mes tablesmysql liste forum php

sujets -id -title -category_id

messages -id -topic_id -user_id -date -temps -txt

utilisateur -id -username

je veux à la liste pour une catégorie tous les sujets avec les informations suivantes nom d'utilisateur de l'auteur (qui a affiché en premier), le nombre de réponses, le nom de l'auteur de la dernière réponse, et date du dernier post trié par date de publication.

Je pourrais le faire avec une boucle imbriquée et un tas de requêtes mais je me demandais si c'était possible avec une ou deux requêtes mysql?

le code que j'ai sofar ...

$query = "SELECT * FROM user u,topics t,posts p WHERE t.category_id=1 AND t.id=p.topic_id AND p.user_id=u.id ORDER BY p.date DESC, p.time DESC"; 

Répondre

0
$sql = "SELECT * FROM user u,topics t,posts p WHERE t.category_id=1 AND t.id=p.topic_id AND p.user_id=u.id ORDER BY p.date DESC, p.time DESC"; 
$query = mysql_query($sql); 
while ($result = mysql_fetch_array($query)) { 
    // do some stuff with $result 
} 

(variables modifiées pour faire un peu plus de sens)

0

il suffit d'ajouter first_topic_id et last_topic_id colonnes à la table topics. C'est une pratique courante et cela vous aidera à obtenir des requêtes simples et rapides.