ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
692
692
EMPFEHLEN
-
Hallo zusammen,
ich versuche schon länger diesem Problem Herr zu werden, habe aber anscheinend ein Brett vor dem Kopf. Ich lese Werte aus einer mySQL-Tabelle aus und sortiere sie nach einer Spalte. Nun möchte ich die Ausgabe deart gestalten, daß eine Spalte als Überschrift genommen wird und alle Werte dieser Gruppe darunter stehen. Wenn sich der "Überschirft-Wert" ändert soll die Schleife neu begonnen werden. Kann mir mal jemand einen Denkanstoß geben?
Beispiel der Tabelle:
Deutschland - Berlin
Deutschland - Hamburg
Frankreich - Paris
Deutschland - München
Frankreich - Calais
Ausgabeformat:
Deutschland
- Berlin
- Hamburg
- München
Frankreich
- Paris
- Calais
Lieben Dank, Helge
-
Folgendes ist möglich:
PHP-Code:$array = array(
array('Deutschland', 'Berlin'),
array('Deutschland', 'Hamburg'),
array('Deutschland', 'München'),
array('Frankreich', 'Paris'),
array('Frankreich', 'Calais'),
);
$last = null;
echo '<dl>';
foreach( $array as $item ) {
if( $item[0] != $last ) {
echo '<dt>'.htmlspecialchars($item[0]).'</dt>';
}
echo '<dd>'.htmlspecialchars($item[1]).'<dd>';
$last = $item[0];
}
echo '</dl>';
Markus Wulftange
-
Dafür brauchst Du nur 2 Abfragen
1. Nur die Länder abfragen
2. Während die Länder durchlaufen werden Stadt abfragen
also in etwa so
PHP-Code:$query = "SELECT land FROM meineTabelle GROUP BY land;";
$result = mysql_query($query);
while($data= mysql_fetch_array($result)){
#Überschrift -> Land
print '<h1>'.$data["land"].'</h1>';
#Städte auslesen
$query = "SELECT stadt FROM meineTabelle WHERE land = '".$data["land"]."';";
$ergebnis = mysql_query($query);
while($inhalt = mysql_fetch_array($ergebnis)){
print $inhalt["stadt"].'<br />';
}
}
Geändert von Kahmoon (07.01.08 um 15:39 Uhr)
Supermoto München :: Agentur für Webdesign, SEO und SEA - mediastuff.de :: Guter Provider gesucht?
"Lattenrost ist keine Geschlechtskrankheit!"
-
Das ganze kannst auch mit einer abfrage + Kontrollfunktion (if) lösen...
so wie Gumbo es schon mit dem array gemacht hat, hier halt nur mit abfrage...PHP-Code:$query="select land, stadt from tabelle";
$land ="";
while($data= mysql_fetch_array($result)){
if($land != $data["land"]){
print "<h1>".$data["land"]."<h1>";
$land = $data["land"];
}
print $data["stadt"]."<br>";
}
Geändert von R00Ki3 (07.01.08 um 16:12 Uhr)
-
Hallo zusammen,
vielen Dank, die Lösung von Kahmoon funktioniert prima.
Ich werde aber auch einmal die anderen durchtesten um zu verstehen und zu lernen was da getrieben wird. Ich weiß auch nicht wiso ich nicht auf den Gedanken gekommen bin mehrere Abfragen und while Schleifen zu verschachteln.
Also vielen Dank,
Helge
Ähnliche Themen
-
Schleife neu beginnen!
Von om1krnoy im Forum C/C++Antworten: 8Letzter Beitrag: 10.05.10, 20:59 -
Schleife durchlaufen bis sich Wert ändert
Von Sarah90 im Forum ASPAntworten: 2Letzter Beitrag: 03.10.09, 12:23 -
MC- Warum ändert sich der Wert nicht?
Von Mammuth im Forum Flash PlattformAntworten: 1Letzter Beitrag: 01.10.07, 16:02 -
Schleife dann Datei erstellen?!
Von -Ener- im Forum PHPAntworten: 3Letzter Beitrag: 03.03.05, 12:18 -
while - Schleife --> Zählen und dann neue Zeile
Von jc-freak im Forum PHPAntworten: 9Letzter Beitrag: 20.01.04, 15:13





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren