|
Anmeldungsdatum: 26.05.2008
Beiträge: 103
|
Hey
Ich habe eine Datenbank einer Serververwaltungsliste und möchte nun das man sich die Ordner struktur ausgeben kann.
Also erstmal wie ich mir Vorstelle wie es am Ende aussehen soll:
Ordner -unterordner Ordner Ordner -unterordner --unterunterordner ---unterunterordner ----[...]
Meine Tabelle besteht aus folgenden attributen :
id - Die Id des Ordners bezeichnung - Name des Ordners owner - Eigentümer des Ordners vertretung - Vertretung des Eigentümers uebergeordner - Und welchem Ordner er untergeordner ist (falls keinem dann 0)
Mein Ansatzt :
Zitat: $user = "root"; $pw = ""; $database = "serverberechtigung"; $server = "127.0.0.1"; $link = mysql_connect($server, $user, $pw) or die("Invalid server!"); mysql_select_db($database, $link) or die("Invalid database!");
$query = "SELECT verzeichnisse.id, verzeichnisse.bezeichnung, verzeichnisse.owner, verzeichnisse.vertretung, verzeichnisse.uebergeordnet, benutzer.nachname FROM verzeichnisse, benutzer WHERE uebergeordnet = 0 AND benutzer.id = owner ORDER BY verzeichnisse.id";
$result = mysql_query($query,$link); $num = mysql_numrows($result);
echo '<div class="verzeichnisse">'; echo '<table>'; echo '<thead><th>Verzeichnisse</th><th>Owner</th></thead>'; for($i = 0;$i < $num;$i++){ $row = mysql_fetch_array($result); $id = $row[id]; echo "<tr><td class='verzeichnis'>$row[bezeichnung]</td><td>$row[nachname]</td><td><input type='Radio' name='verzeichnis_id' value='$id'></td></tr>";
$query_unter = "SELECT verzeichnisse.id, verzeichnisse.bezeichnung, verzeichnisse.owner, verzeichnisse.vertretung, verzeichnisse.uebergeordnet, benutzer.nachname FROM verzeichnisse, benutzer WHERE uebergeordnet = '$id' AND benutzer.id = owner ORDER BY verzeichnisse.id"; $result_unter = mysql_query($query_unter,$link); $num_unter = mysql_numrows($result_unter);
for($z = 0;$z < $num_unter;$z++){ $row_unter = mysql_fetch_array($result_unter); $id = $row_unter[id]; echo "<tr><td class='verzeichnis'> - $row_unter[bezeichnung]</td><td>$row_unter[nachname]</td><td><input type='Radio' name='verzeichnis_id' value='$id'></td></tr>";
$query_unter = "SELECT verzeichnisse.id, verzeichnisse.bezeichnung, verzeichnisse.owner, verzeichnisse.vertretung, verzeichnisse.uebergeordnet, benutzer.nachname FROM verzeichnisse, benutzer WHERE uebergeordnet = '$id' AND benutzer.id = owner ORDER BY verzeichnisse.id"; $result_unter = mysql_query($query_unter,$link); $num_unter = mysql_numrows($result_unter);
for($z = 0;$z < $num_unter;$z++){ $row_unter = mysql_fetch_array($result_unter); $id = $row_unter[id]; echo "<tr><td class='verzeichnis'> - $row_unter[bezeichnung]</td><td>$row_unter[nachname]</td><td><input type='Radio' name='verzeichnis_id' value='$id'></td></tr>"; }
} }
In dem Code findet man auch ein Formular, welches dazu dient die einzelnen Datensätze zu bearbeiten/löschen.
So wie man meinen Code bis jetzt entnehmen kann, kann es bis jetzt nur 1 unterordner anzeigen. Natürlich könnte man einfach noch 2 for schleifen da rein packen, aber was ist wenn man bis zu 5 ebenen Unterordner hat oder bis zu 100.
Darum meine Frage, wie man es "dynamischer" machen kann. Z.b. Das geprüft wird wie viele unterordner es gibt oder so :s
Wenn einer eine Idee hat nur raus damit :p
mfg Itachidhdr
________________________________________ so troublesome....
|
Moderator 45.021 Punkte (?)
Anmeldungsdatum: 25.04.2008
Beiträge: 9.399
 |
Experte |
2 Mitglieder finden diesen Beitrag gut (+4 Punkte) Akzeptierte Antwort (+50 Punkte)
|
Für eine MySQL-Datenbank ist das parent-ID-Verfahren ohnehin nicht gut geeignet, da es hier kein CONNECT BY wie bei Oracle gibt. Da solltest du dir eher mal Nested Sets anschauen.
________________________________________ Stereomix • Bootreihenfolge ändern • PC beschleunigen
|