splat
Erfahrenes Mitglied
Hi,
ich habe hier folgende Tabelle in meiner MySQL Datenbank:
Ich würde die Zuordnungen ja auch viel lieber über parent id's lösen, aber ich kann die Datenbank leider nicht modifizieren. Naja, jedenfalls brauche ich ein Select Feld, bei dem ich alle Länder, sowie Regionen sehen kann. Wenn es geht, sollten die Regionen etwas eingerückt sein. Das sollte ja mit dieser Struktur auch irgendwie zu machen sein, nur bekomme ich das ganze nicht so hin.
Mit diesem Code sollte das von der Logik her soweit 'eigentlich' funktionieren:
Nur wie kann ich die Länder mit dem Eintrag 'NULL' als übergeordnetes Land bestimmen? Mit $parent="" in der ersten Zeile bekomme ich nämlich überhaupt kein Land ausgegeben. Hat jemand eine Idee?
Marc
ich habe hier folgende Tabelle in meiner MySQL Datenbank:
Code:
id | type | name | country
-------------------------------------------------
1 | state | Bayern | Deutschland
2 | state | Hessen | Deutschland
3 | country | Deutschland | NULL
4 | state | Queensland | Australien
5 | state | Victoria | Australien
6 | state | Northern Territory | Australien
7 | country | Australien | NULL
Ich würde die Zuordnungen ja auch viel lieber über parent id's lösen, aber ich kann die Datenbank leider nicht modifizieren. Naja, jedenfalls brauche ich ein Select Feld, bei dem ich alle Länder, sowie Regionen sehen kann. Wenn es geht, sollten die Regionen etwas eingerückt sein. Das sollte ja mit dieser Struktur auch irgendwie zu machen sein, nur bekomme ich das ganze nicht so hin.
Mit diesem Code sollte das von der Logik her soweit 'eigentlich' funktionieren:
PHP:
function build_location_tree(&$output, $parent="", $indent="") {
$qid = mysql_query("SELECT country, id, name FROM location WHERE country = '$parent' ORDER by name ASC");
while ($loc = mysql_fetch_object($qid)) {
$output .= "<option value=\"" . ov($loc->id) . "\" >$indent" . ov($loc->name);
if ($loc->country != $parent) {
build_location_tree($output, $loc->name, $indent." ");
}
}
}
Nur wie kann ich die Länder mit dem Eintrag 'NULL' als übergeordnetes Land bestimmen? Mit $parent="" in der ersten Zeile bekomme ich nämlich überhaupt kein Land ausgegeben. Hat jemand eine Idee?
Marc