Auge: Array-Werte als Bedingung für Format

Beitrag lesen

Hallo

Verstehe ich das so richtig, daß man im PHP über echo die letzte Liste erzeugt und diese abhängig vom Ergebnis der DB-Abfrage mit bzw. ohne "aktiv" bestückt?

Zur Klarstellung: Mit echo gibst du zum Schluss das (hoffentlich) vorher generierte HTML-Stück aus (EVA-Prinzip). Aber ja, du holst aus deiner Datenbank die Liste der vorhandenen Städte, vergleichst sie mit einer Liste aller Städte und gibst dem HTML-Element für eine Stadt die Klasse „aktiv“ (oder so ähnlich), wenn sie auch im Ergebnis der DB-Abfrage vorhanden ist.

Die css-Datei sorgt dann dafür, daß die Position und Farbe der Standorte stimmen.

Ja. Du kannst anhand der Klasse „aktiv“ die Farbe festlegen. Die Position (auf einer Karte?) musst du im CSS vorher definieren. Die wird ja für jede Stadt anders sein.

Wie sehen dann diese Standorte im Browser aus? Sind das die Namen? Oder erzeugt "boxen" Rechtecke? Fehlen dann nicht noch die Maße?

Das kommt auf deinen Aufbau des HTML an. nehmen wir molilys Quelltext.

<ul class="boxen">  
<li class="leipzig">Leipzig</li>  
<li class="berlin aktiv">Berlin</li>  
<li class="potsdam">Potsdam</li>  
<li class="magdeburg aktiv">Magdeburg</li>  
<li class="zwickau">Zwickau</li>  
</ul>

Über die Klasse des Stadtnamens legst du die Position fest und mit der Klasse „aktiv“ die Farbe. Was die Boxen angeht, kannst du dich austoben. Du kannst die Listenpunkte (li) selbst zu Boxen machen. Du kannst auch mit <li class="leipzig"><span></span>Leipzig</li> ein zusätzliches Element (das span) bereitstellen, dass du mit display: inline-block;, den passenden Abmessungen und Farben zu der Box machst.

Im PHP erzeuge ich dann abhängig vom Ergebnis ("$_menge") der DB-Abfrage ein rotes oder grünes Quadrat durch den Hintergrund einer einzelligen leeren Tabelle (Unschön: für jeden Standort müsste ich eine separate PHP-DB-Abfrage durchführen):

Warum für jede Stadt eine Abfrage? Hole dir die Liste aller Städte und gehe sie am Stück durch. Das Ergebnis des Vergleichs merke ich mir gern in einem mehrdimensionalen Array. Das wäre hier das Array aller anzuzeigenden Städte, dem ich mit dem Vergleich der aus der DB geholten Städte die relevanten Informationen hinzufüge. Das HTML-Stück würde nun mit dem resultierenden Array erzeugt werden.

Die Struktur des Arrays könnte nach dem Vergleich folgenderßmaßen aussehen.

$staedteListe = array(  
array("name"=>"Leipzig", "vorhanden"=>0, url=>""),  
array("name"=>"Berlin", "vorhanden"=>1, url=>"http://www.berlin.de"),  
Array("name"=>"Potsdam", "vorhanden"=>0, url=>""),  
array("name"=>"Magdeburg", "vorhanden"=>1, url=>"http://www.magdeburg.de"),  
array("name"=>"Zwickau", "vorhanden"=>0, url=>""));

Mit diesen Daten kann ich die HTML-Listenpunkte in einer Schleife generieren.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
Veranstaltungsdatenbank Vdb 0.3