à la recherche d'une requête...

Invité
Invité n'ayant pas de compte PHPfrance

14 mai 2009, 16:23

Bonjour à tous,

Voilà j'ai créé un petit forum pour mon site, seulement, je butte sur une requête :?

Structure de mon forum :

Rubriques
Thèmes
Sujets

Je souhaiterais afficher la liste des thèmes d'une rubrique dans l'ordre des sujets les plus récents...
En gros, dès qu'un sujet est posté, son thème est automatiquement remonter en première place, comme on peut le voir dans tous les forums d'ailleurs !!

Je vous serais très reconnaissant de m'aider à trouver cette ***** requête :D

merci d'avance et bonne continuation... :merci:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

14 mai 2009, 16:24

Montre-nous ton premier jet qu'on puisse se baser dessus.

Invité
Invité n'ayant pas de compte PHPfrance

14 mai 2009, 16:26

j'ai oublié de préciser, j'ai 3 tables :

RUBRIQUE(
id_rubrique
...
date_ajout
)

THEME(
id_theme
id_rubrique
...
date_ajout
)

ARTICLE(
id_article
id_theme
...
date_ajout
)


merci beaucoup :merci:

Invité
Invité n'ayant pas de compte PHPfrance

14 mai 2009, 16:39

oups j'avais pas vu ta réponse désolé..

et bien moi j'avais d'abord afficher mes thèmes avec une simple requête :

Code : Tout sélectionner

SELECT * FROM THEME WHERE id_rubrique='id_rubrique';
maintenant j'ai envie d'ajouter un ORDER BY mais je ne sais pas comment :D

il faudrait que je le fasse sur l'attribut date_ajout mais de la table ARTICLE...........

ViPHP
ViPHP | 2291 Messages

14 mai 2009, 18:07

Ou simplement un DESC pour qu'il sorte les article en commenceant par le dernier

Invité
Invité n'ayant pas de compte PHPfrance

14 mai 2009, 18:18

je vois ce que tu veux dire mais...

...je dois faire le SELECT sur la table THEME et le ORDER BY date_ajout DESC sur la table ARTICLE
(ces 2 tables sont liées par la clé étrangère id_theme dans la table ARTICLE)

enfin je dis ça mais je m'y prend peut être mal, si certains ont déjà développé un forum, je leur demande alors :
"comment faites-vous pour faire remonter en tête de liste les sujets qui viennent de recevoir un nouveau message ?"

merci de m'aider en tout cas ;)

ViPHP
ViPHP | 2291 Messages

14 mai 2009, 18:34

Comment sait tu qu'un article a reçu une réponse ?

Invité
Invité n'ayant pas de compte PHPfrance

14 mai 2009, 18:40

je m'occupe pas de ça en fait

je veux faire un tri par rapport aux dates d'ajout des articles

ViPHP
ViPHP | 2291 Messages

14 mai 2009, 18:47

je m'occupe pas de ça en fait

je veux faire un tri par rapport aux dates d'ajout des articles
:-s
Bon bin alors j'imagine qu'un simple ORDER BY date suffirat
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Invité
Invité n'ayant pas de compte PHPfrance

14 mai 2009, 18:54

lol oui si je voulais trier les articles

mais là je veux trier les thèmes, par rapport à la date du plus récent article qu'ils contiennent

désolé j'ai du mal à me faire comprendre :cry: lol

Eléphant du PHP | 254 Messages

14 mai 2009, 21:45

Salut
"comment faites-vous pour faire remonter en tête de liste les sujets qui viennent de recevoir un nouveau message ?"
En fait tu veux savoir plutôt :

"comment faites-vous pour faire remonter en tête de liste les THEMES qui viennent de recevoir un nouveaux ARTICLE ?"

Ce qui nous permettrait de faire le lien avec tes tables que tu nous as montrée, et dans ce cas la as tu déjà une requête qui affiche un liste de THEMES avec les articles ?

Invité
Invité n'ayant pas de compte PHPfrance

14 mai 2009, 22:34

oui tout a fait ! bonne traduction je te remercie de m'avoir corrigé ;)

donc ma requête elle est simple elle affiche la liste des thèmes (par exemple) :

Code : Tout sélectionner

SELECT * FROM THEME WHERE id_rubrique='3';
et ensuite j'affiche les thèmes en récupérant les résultats etc...

maintenant le problème c'est de les afficher dans l'ordre souhaité (que tu as très bien citée dans ta question) |*()

merci.. :priere:

ViPHP
ViPHP | 2291 Messages

14 mai 2009, 22:52

Quelque chose du genre peut-être :?:
$requete = "SELECT TH.theme ,TH.id_theme,  AR.article , AR.id_article, AR_date_ajout
            FROM theme TH, article AR
            WHERE AR.id_article = 'TH.id_theme'
            ORDER BY AR_date_ajout
            DESC";
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.