Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: TinMar le le 06-11-2003 a 08:30:48

Titre: Arborescence
Posté par: TinMar le le 06-11-2003 a 08:30:48

Salut à tous je suis en train d'essayer de programmer un forum alone et je bute déjà. J'ai choppé un script sur le net pour créer l'arborescence d'un forum mais le problème que ca met en memoire ts les messages avant d'afficher les messages et j'aimerais eviter ca (il parrait que ca prend de la ressource)
Voila le code que j'ai trouvé :



Code:
# 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);

?>



Est ce que c'est possible que quelqu'un me donne des pistes pour chopper les réponses direct dans la bdd ?
Merci d'avance !
TinMar 8)


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.