Hallo.
Inhaltsverzeichnis
1. Tabelle anlegen
1.2 Datensätze einfügen
3. Rekursive Funktion
3.1 Erklärung zum Script
4. Schlusswort
1. Tabelle anlegen
Ihr legt eine Tabelle namens "baum" an.
In dieser Tabelle gibt es folgende Spalten:
vid - die parentID
mid - die threadID
betreff - der betreff
id - ID vom Posting
CREATE TABLE `baum` (
`vid` int(8) NOT NULL default '0',
`mid` int(8) NOT NULL default '0',
`betreff` varchar(200) NOT NULL default '',
`id` int(8) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
1.2 Datensätze einfügen
INSERT INTO `baum` VALUES (0, 1, 'Beitrag 1', 1);
INSERT INTO `baum` VALUES (1, 1, 'Beitrag 2', 2);
INSERT INTO `baum` VALUES (2, 1, 'Beitrag 2.1', 3);
INSERT INTO `baum` VALUES (3, 1, 'Beitrag 2.1.2', 4);
INSERT INTO `baum` VALUES (1, 1, 'Beitrag 3', 5);
INSERT INTO `baum` VALUES (1, 1, 'Beitrag 4', 6);
INSERT INTO `baum` VALUES (6, 1, 'Beitrag 4.1', 7);
3. Rekursive Funktion
Legt eine Datei namens "baum.php" an.
In der schreibt ihr folgendes:
$verbindung = mysql_connect("SERVER", "USERNAME", "PASSWORT");
$verbindung_datenbank = mysql_select_db("DATENBANK");
Thread(0);
function Thread($parentID)
{
$vid = $_GET["vid"];
$mid = $_GET["mid"];
$id = $_GET["id"];
$sql = "SELECT * FROM baum WHERE vid = '$parentID' AND mid = '$_GET[mid]' ORDER BY id ASC";
$result = mysql_query($sql);
echo "<ul style=\"list-style-type:none\">";
if(mysql_num_rows($result) > 0)
{
while($thread = mysql_fetch_array($result))
{
if($thread['vid'] == $vid AND $thread[id] == $id)
{
$img = "<img src=\"images/ebeneopen.gif\" width=\"15\" height=\"15\" border=\"0\">";
}
else
{
$img = "<img src=\"images/ebene1.gif\" border=\"0\">";
}
echo "<li style=\"list-style-type:none\"><a href=\"?vid=$thread[vid]&mid=$_GET[mid]&id=$thread[id]\">$img
".$thread["betreff"]."</a></li>";
Thread($thread["id"]);
echo "</ul>";
}
}
}
3.1 Erklärung zum Script
Mit
Thread(0);
ruft ihr die Funktion auf.
Die Variablen
$vid = $_GET["vid"];
$mid = $_GET["mid"];
$id = $_GET["id"];
müsst ihr an eurer URL anhängen. (Bsp: http://www.deineurl.de/baumansicht.php?vid=0&mid=1&id=1)
Mit
if($thread['vid'] == $vid] AND $thread[id] == $id])
{
$img = "<img src=\"images/ebeneopen.gif\" width=\"15\" height=\"15\" border=\"0\">";
}
else
{
$img = "<img src=\"images/ebene1.gif\" border=\"0\">";
}
prüft er, welches Bild angezeigt werden soll.
ebeneopen.gif ist für den gerade angezeigten Beitrag
ebene1.gif sind für die anderen Beiträge.
Thread($thread["id"]);
ruft sich selber wieder auf und lässt so den Baum erstellen.
4. Schlusswort
Ihr könnt die Imagesdateien hier runterladen:
http://simple.xardas.lima-city.de/ebeneopen.gif
http://simple.xardas.lima-city.de/ebene1.gif
Speichert sie unter /images/.
Ladet die "baum.php" auf eurem Server und ruft sie auf:
http://www.deinserver.de/baum.php?vid=0&mid=1&id=1
Ich hoffe euch hat das Tutorial gefallen und bringt euch auch viel nutzen.
Gruß,
simple