Timmer
Mitglied
Hey, ich habe ein paar Arrays, in denen Daten stehen, wie Land, Bundesland, Regierungsbezirk und Landkreis. Alle diese Einträge haben eine ID, ein belongs_to zum Übergeordneten Eintrag und den Namen. Die Einträge sind in 4 Arrays gespeichert, jeweils Land, Bundesland (usw...). Wenn ich jetzt in der Suche einen Suchbegriff eingebe, wird onChange die Liste aktualisiert, alle Einträge, die auf den Suchbegriff passen, UND alle übergeordneten Elemente werden angezeigt. Das realisiere ich momentan mit einer while-Schleife:
Wenn $belongs_to gleich 0 ist, liegt ein Land vor, also kein übergeordneter Eintrag mehr. Als Bremse einer Endlosschleife habe ich noch $lauf eingebaut.
In der Liste wird einfach nur geprüft, ob count($found) gleich 0 ist oder ob die ID des Eintrags in $found zu finden ist, wenn eines der beiden Statements TRUE ist, wird der Eintrag angezeigt.
Mein Problem: Ich möchte jetzt aber auch alle untergeordneten Einträge anzeigen lassen. Wenn ich also Bayern eingebe, sollen Regierungsbezirke wie Unterfranken und Städte wie Aschaffenburg angezeigt werden. Das ganze natürlich über die ID's und die Belong_to's. Mir fehlt nur ein Ansatz, wie ich das realisieren könnte...
Jemand eine Idee?
PS: Falls euch ein paar der oben genannten Funktionen nicht bekannt sein sollten, ich programmiere auf dem Firmen-PHP-Framework...
PHP:
$all_regions = get_assoc_array($DBCONNECT, "SELECT region_id, belongs_to FROM region");
$suchen = addslashes( trim( $IN['_suchen']));
$results = dbquery($DBCONNECT, "SELECT region_id FROM region WHERE region_desc LIKE '%{$suchen}%'");
while ( $rec = mysql_fetch_array($results)) {
$lauf = 0;
$found[] = $region_id = $rec['region_id'];
$found[] = $belongs_to = $all_regions[$region_id];
while ( $belongs_to > 0 && $lauf < 20) {
$found[] = $belongs_to = $all_regions[$belongs_to];
$lauf++;
}
}
array_unique($found);
if(count($found) == 0) $found[] = 'FALSE';
In der Liste wird einfach nur geprüft, ob count($found) gleich 0 ist oder ob die ID des Eintrags in $found zu finden ist, wenn eines der beiden Statements TRUE ist, wird der Eintrag angezeigt.
Mein Problem: Ich möchte jetzt aber auch alle untergeordneten Einträge anzeigen lassen. Wenn ich also Bayern eingebe, sollen Regierungsbezirke wie Unterfranken und Städte wie Aschaffenburg angezeigt werden. Das ganze natürlich über die ID's und die Belong_to's. Mir fehlt nur ein Ansatz, wie ich das realisieren könnte...
Jemand eine Idee?
PS: Falls euch ein paar der oben genannten Funktionen nicht bekannt sein sollten, ich programmiere auf dem Firmen-PHP-Framework...
Zuletzt bearbeitet: