Arborescence pour un forum

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 801 fois - Téléchargée 27 fois

Contenu du snippet

Ce code permet de faire simplement une arborescence pour un forum. Ce code a été trouvé sur www.phpfrance.com et je l'ai mis car il y en avait pas sur ce site.

Source / Exemple :


# Structure de la table

CREATE TABLE forum (
 id mediumint(9) NOT NULL auto_increment,
 id_parent mediumint(9) NOT NULL,
 titre varchar(64) NOT NULL,
 PRIMARY KEY (id)
); 
# Contenu de la table

INSERT INTO forum VALUES( '1', '0', 'test');
INSERT INTO forum VALUES( '2', '1', 'test2');
INSERT INTO forum VALUES( '3', '2', 'test3');
INSERT INTO forum VALUES( '4', '1', 'test4');

<? 
// connection
$bdd = mysql_connect("localhost","utilisateur","mot_passe");
mysql_select_db("forum", $bdd);

// selection des messages
$sql = "SELECT * from forum";
$aryResultatRequete = mysql_query($sql, $bdd);

// fonction récursive qui affiche les sous messages d'un message
function affiche_sous_msg($argMessagesFils,$argMessageId)
{
 if($aryMessages = $argMessagesFils[$argMessageId])
 {
  echo "<ul>";
  while(list(,$aryMessage) = each($aryMessages))
  {
   echo "<li>$aryMessage[titre]";
   affiche_sous_msg($argMessagesFils,$aryMessage[id]);
  }
  echo "</ul>";
 }
}

// rangement des messages
while($aryMessage = mysql_fetch_array($aryResultatRequete))
{
 $id_parent = $aryMessage[id_parent];
 // c'est le premier message de la discussion on l'ajoute dans le tableau des sujets
 if(!$id_parent) $aryMessagesSujets[] = $aryMessage; 
 // sinon on l'ajoute dans la teableau des messages fils
 else $aryMessagesFils[$id_parent][] = $aryMessage;
}

// affichage des messages
echo "<ul>";
while(list(,$arySujet) = each($aryMessagesSujets))
{
 echo "<li>$arySujet[titre]";
 // appel de la fonction récursive qui va afficher tous les sous messages
 affiche_sous_msg($aryMessagesFils,$arySujet[id]);
}
echo "</ul>";

// déconnection
mysql_close($bdd);

?>

A voir également

Ajouter un commentaire

Commentaires

eli13001
Messages postés
1
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
18 janvier 2012
-
thankiou !
Hellway
Messages postés
37
Date d'inscription
lundi 14 avril 2003
Statut
Membre
Dernière intervention
2 août 2004
-
J'ai le même sur mon site, mais j'ai fait ça carrément plus facilement et sans générer de listes qui bouffent de la ressource. M'enfin, c'est déjà pas mal.
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
un élan de bonté
cs_ace
Messages postés
27
Date d'inscription
dimanche 30 décembre 2001
Statut
Membre
Dernière intervention
22 mai 2004
-
Ouais sa sert pas trop mais bon faire un listing fo pas etre un pro pour faire sa
Mais c cool bravo aller 8/10 pour la peine ke tu t donné
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
... il n'y en avais pas sur ce site... mais c une listing de base de données classique, tout ce qu'il y a de plus courant :-)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.