Geschrieben von simple am 17.05.2006, 10:45

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

Bewertung Anzahl
6
66,7 %
4 Bewertungen
5
16,7 %
1 Bewertungen
2
16,7 %
1 Bewertungen