Ordnerstruktur aus DB

bastiglasl

Erfahrenes Mitglied
Ich habe vor eine Ordnerstruktur aus Datensätzen zu basteln. Bislang bin ich soweit, daß die benötigten Daten schon in der richtigen Reihenfolgen in ein Array laufen. Ich weiß leider nur nicht, wie ich dieses jetzt vernünfigt darstellen kann.
PHP:
<?php require_once('../Connections/webmail.php'); ?>
<?php
mysql_select_db($database_webmail, $webmail);
$query_irgendwas = "SELECT * FROM ordnerstruktur ORDER BY id ASC";
$irgendwas = mysql_query($query_irgendwas, $webmail) or die(mysql_error());
$row_irgendwas = mysql_fetch_assoc($irgendwas);
$totalRows_irgendwas = mysql_num_rows($irgendwas);
$tab = array();

do {
$tab[$row_irgendwas[id]] = $row_irgendwas;

} while ($row_irgendwas = mysql_fetch_assoc($irgendwas));

	$ueberordner = array();
	$ueberordner[]="";
	$sorted =array();
	$ = array();

	for ($i = 1; $i <= count($tab); $i++) {
		$tab[$i][Unterordner] = array();
		$ueberordner[] = $tab[$i][oid];
	}
	
	for ($i = count($ueberordner); $i >= 1; $i --) {
		if ($ueberordner[$i] == 0) {continue;}
		$tab[$ueberordner[$i]][Unterordner][] = $tab[$i];

		
	}
	$sorted = $tab[1];
	print_r($sorted);
	?>

Das Array sieht a bisserl gekürzt so aus:

Code:
[1] => Array
        (
            [0] => Array
                (
                    [id] => 4
                    [ordner] => archiv
                    [oid] => 1
                    [Unterordner] => Array
                        (
                        )

                )

            [1] => Array
                (
                    [id] => 3
                    [ordner] => sent
                    [oid] => 1
                    [Unterordner] => Array
                        (
                        )

                )

            [2] => Array
                (
                    [id] => 2
                    [ordner] => inbox
                    [oid] => 1
                    [Unterordner] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 6
                                    [ordner] => basti
                                    [oid] => 2
                                    [Unterordner] =>
                                        
                                        (                                    )

                            [1] => Array
                                (
                                    [id] => 5
                                    [ordner] => flo
                                    [oid] => 2
                                    [Unterordner] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [id] => 12
                                                    [ordner] => irgendwas
                                                    [oid] => 5
                                                    [Unterordner] => Array
                                                        (
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

Kann mir jemand helfen?
 
Hi!

Erstell dir ne Funktion "handleDir", in der du per foreach den Array durchgehst.
Wenn es sich bei einem Eintrag um ein Array handelst, rufst du die gleiche Funktion wieder (mit diesem neuen Array) auf. usw. usf.

Ein kleiner Tipp zu Baumstrukturen in der Datenbank: Nested Sets

Mamphil
 
Zurück