HomeArtikelDownloadsForum
PCFreunde.deForumEntwicklungPHP, MySQL & Co.
Besucher online: 1.000
Schnellsuche

Anzeigen

Community

Foren
PHP, MySQL & Co. Seite 1/1
dynamische mysql abfrage
AntwortenNeues ThemaZur akzeptierten AntwortZur Themenliste
Seiten:
1
Nachricht
Itachidhdr
Titel: dynamische mysql abfrage 29.08.2011 14:26
103 Punkte (?)
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....
Private Nachricht senden  
 
L3oop
Titel: dynamische mysql abfrage 29.08.2011 14:36
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.

________________________________________
StereomixBootreihenfolge ändernPC beschleunigen
Private Nachricht senden  
 
AntwortenNeues ThemaZur akzeptierten AntwortZur Themenliste
Seiten:
1
Community Login
eMail:
Passwort:
Auto-Login