|
La Communauté Webmaster 
| Pages: [1] |
 |
|
|
|
Auteur |
Sujet: Arborescence (Lu 370 fois) |
|
 |
Arborescence
« sur: le 06-11-2003 a 08:30:48 » |
|
TinMar
Habitué
  
Hors-Ligne
Sexe: 
Messages: 268

Yo !
|
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é :
# 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 |
|
|
|
|
| Pages:
[1] |
|
|
|
| |
|
|