Mailinglisten-Archive |
Hallo, ich habe in einer MYSQL-Datenbank diverse Fotoalben gespeichert und sie soweit bekannt mit den Informationen "Kontinent, Land, Ort" versehen. Aus diesen Informationen möchte ich nun eine Menüstruktur erstellen, wie sie auf www.uli.ahrens.cx zu sehen ist. (Die Links funktionieren noch nicht). Hier ist alles noch manuell eingetragen. Ich verwende zumdem vlib (http://vlib.clausvb.de/), um den php-Code vom html-Output zu trennen. Ich habe nun die Daten in ein Array ausgelesen und über ein TMPL_LOOP im html-Template ausgegeben. $sql = "SELECT Kontinent, Land, Ort FROM album ORDER BY Kontinent, Land, Ort"; $nav_info = mysql_query($sql) OR die(mysql_error()); $nav_data = array(); while ($ausgabe = mysql_fetch_assoc ($nav_info)) { array_push($nav_data, array( 'Kontinent' => $ausgabe['Kontinent'], 'Land' => $ausgabe['Land'], 'Ort' => $ausgabe['Ort'] ) ); } $tmpl->setloop('nav_data', $nav_data); Das Array sieht dann wie folgt aus: Array ( [0] => Array ( [Kontinent] => Afrika [Land] => Kenia [Ort] => ) [1] => Array ( [Kontinent] => Afrika [Land] => Kenia [Ort] => Mosambike ) [2] => Array ( [Kontinent] => Europa [Land] => Deutschland [Ort] => Köln ) ) Im Template wird das ganze wie folgt ausgegeben: <tmpl_loop name='nav_data'> <li><a href="#" class="pfeil">{tmpl_var name=Kontinent}</a> <ul> <li><a href="#" class="pfeil">{tmpl_var name='Land'}</a> <ul> <li><a href="#">{tmpl_var name='Ort'}</a></li> </ul> </li> </ul> </li> </tmpl_loop> Mein Problem ist nun: 1. Es gibt ein Album generell über Kenia und eines über Kenia -> Mosambike. Zur Zeit werden 2 Menüs generiert: Afrika - Kenia Afrika - Kenia - Mosambike Ich möchte aber: Afrika - Kenia - Kenia - Mosambike und vielleicht noch Tanzania, Südafrika o.ä., ohne jeweils einen separaten Afrika-Eintrag. Ich möchte auch nicht mehrfache Land-Einträge, wenn ich z.B. in Kenia verschiedene Städte besucht habe und separate Alben darstellen möchte. Kann mir da jemand weiterhelfen? Muß nicht unbedingt mit dem Loop-Array sein. Habe es auch schon mit mehrdimensionalen Arrays versucht, komme aber nicht weiter. 2. (nicht ganz so dringend, klärt sich vielleicht bei der Lösung von 1) Wenn z.B. "Ort" nicht bekannt ist, wird trotzdem ein Feld in der Navigation dargestellt, allerdings ohne Inhalt. Ich möchte aber, daß in solch einem Fall gar kein Feld dargestellt wird. So, ich hoffe, ich konnte mich verständlich ausdrücken und es kann mir jemand helfen. Vielen Dank. Gruß Uli
php::bar PHP Wiki - Listenarchive