{MySQL} classement à l'aide d'un champs

Fermé
JJBlow Messages postés 44 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 novembre 2010 - 17 août 2009 à 23:19
imw Messages postés 233 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 - 18 août 2009 à 22:16
Bonjour ou bonsoir, voilà, je fait un petit site actuellement et je suis en local, j'apprends le PHP et MySQL mais la pratique reste encore un peu difficile, enfin, voici donc mon problème:
je recherche à faire une sorte de classement, j'ai mes membres par exemple qui une fois inscrits se voient attribuer un ID en Auto-increment, et je voudrais pour faire une sorte de classement pour les autres visiteurs ou membres. Je vous explique plus clairement; si un visiteur veut voir les messages et QUE les messages de tel ou tel membre, je souhaiterai que ce ne soit que les message de ce membre qui soit affiché.
Une sorte de moteur de recherche, enfin, plus un classement qu'autre chose pour moi.

Je souhaite donc, qu'avec une liste déroulante par exemple, on ai un aperçut de tous les membres, et qu'ensuite en en sélectionnant un tous les messages associé à son nom (enfin, pour que ce soit plus facile et clair, ceux associés à son ID en fait) soient affichés, après l'ordre sa m'importe moins, du plus ancien au plus récent ou inverse.

Alors voilà, je bloque complètement et j'ai besoin d'aide.

Merci de votre aide et je vous souhaite à tous de passer une excellente journée.
A voir également:

3 réponses

imw Messages postés 233 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 42
18 août 2009 à 07:59
Il faut déjà que tu récupère la liste des membres
SELECT * FROM `TableMembres`

pour afficher ton select

Ensuite quand le membre est sélectionné, tu recherche que ses messages
SELECT * FROM `TableMessages` WHERE `ChampIdDuMembre`=$id ORDER BY `DateDePost` DESC


Bien sur, tu remplace le nécessaire.
Je t'ai mis un ORDRE BY ... si tu as un champ contenant la date du post. Sinon, tu peux toujours trier avec l'auto incrément (qui normalement est dans l'ordre).
Le DESC à la fin, c'est pour trier du plus Grand au plus Petit ) (ou du plus récent au plus vieux)
0
JJBlow Messages postés 44 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 novembre 2010 2
18 août 2009 à 21:49
Bonjour, alors merci beaucoup d'avoir bien voulu répondre et m'aider.
Sinon, je n'ai pas trop compris la première "étape":
Il faut déjà que tu récupère la liste des membres
SELECT * FROM `TableMembres`


Car je ne peut donc pas faire la suite:
Ensuite quand le membre est sélectionné, tu recherche que ses messages
SELECT * FROM `TableMessages` WHERE `ChampIdDuMembre`=$id ORDER BY `DateDePost` DESC


Voici ce que moi je pensait faire, évidement sa n'est pas ça et ça ne fonctionne pas:
$requete = mysql_query("SELECT * FROM `minichat` WHERE `id`=$id ORDER BY `id` DESC");
     mysql_close();
 while($resultat = mysql_fetch_assoc($requete))
     {  
	 echo $resultat;
	 }


Comment donc puis-je faire ?
Sachant que j'ai en fait, 2 tables pour cela, l'une qui contient les membres et leurs infos, c'est la table membres_tbl et l'autre c'est celle qui contient les messages, elle s'appelle minichat.
Dans membres_tbl il y a les champs id et pseudo, là l'ID c'est pour identifier les membres.
Dans minichat il y a les champs id et message, et ici l'ID c'était pour les classer grâce à l'auto-increment.

Voilà, donc merci encore pour l'aide apportée.
Excellente journée.
0
imw Messages postés 233 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 42
18 août 2009 à 22:16
Tu as dit dans ton premier post, que tu voulais pouvoir choisir d'afficher les messages que d'un seul membre.

Pour pouvoir sélectionner ce membre, il faut bien l'afficher (des liens, ou un input select). La première requête sert à ça. Dans ton cas :

SELECT * FROM membres_tbl;

bien sur tu fait le while qui va bien pour afficher tous les membres disponibles.

Pour afficher les messages d'un seul membre, il te manque une information dans ta table de minichat.
Il faut que tu rajoute un champ dans lequel sera identifié l'auteur du message (ex : idMembre )

une fois que tu as choisi le membre qui t'intéresse, tu peux afficher seulement ses messages :

SELECT * FROM minichat WHERE idMembre=$id ORDER BY id DESC

Et voilà
0