PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verschachtelte Datenabfrage...



vleng
28-02-2002, 22:37
Hallo zusammen...

Ich hab folgende MySQL-Tabelle:
Kategorie
*KatID Name _KatID
1 Hardware NULL
2 Mainboard 1
3 Software NULL
4 Grafikkarte 1
5 AGP 4
... usw...

Ich möchte jetzt eine folgende Ausgabe haben:

Hardware
-Grafikkarte
---AGP
-Mainboard
Software

Wie kann ich das via SQL mit PHP bewerkstelligen???

Thanx a lot.
Volker

JoelH
01-03-2002, 05:58
ist die Reihenfolge ansich egal ? Ich erkenne da leider keinerlei System. Ich würd mal die NULL in 0 umwandeln, das ist nämlich ein Unterschied ! Damit lässt sich dann leichter arbeiten. Dann würd ich machen :


$query = "SELECT * FROM tab ";
$result = mysql_query($query,$verbindung);
if ($result)
{
while ($zeileholen = mysql_fetch_array($result,MYSQL_ASSOC))
{
for ($i=1;$i<=$zeileholen["_KaID"];$i++)
{
echo "-";
}
echo $zeileholen["Name"]."<br>";
}
}

So sollte das gehen, naja aber die Ausgabe ist dann einfach wild durcheinander, jenachdem wie die Einträge in der Tabelle sind. Ich denke mal die sieht so aus :
Hardware
-Mainboard
Software
-Grafikkarte
----AGP

lolli
04-03-2002, 06:49
das sollte auch gehen:


$rc=mysql_query("select * from Kategorie where _KatID=NULL");
while($kat=mysql_fetch_hash($rc)){
echo "<b>$kat['Name']</b><br>";
$rc1=mysql_query("select * from Kategorie where _KatID='$kat['KatID']'");
while($row=mysql_fetch_hash($rc1)){
echo "- $row['Name']<br>";
$rc2=mysql_query("select * from Kategorie where _KatID='$row['KatID']'");
while($row1=mysql_fetch_hash($rc2)){
echo "-- $row1['Name']<br>";
}
}

}


oliver