Thomas Schmieder: Anfängerfrage - MySQL Query

Beitrag lesen

Hallo @ All,

Du könntest nach der Spalte "jahreszeit"(oder wie auch immer du das genannt hast) sortieren, also

SELECT FROM ... ORDER BY Jahreszeit

oder direkt nach Datum. So hättest Du das ganze wenigstens schonmal richtig sortiert.

Man kann auch ohne Weiteres über zwei Spalten sortieren:

SELECT FROM ... ORDER BY Jahreszeit, Datum

Für den Fall das auf den Spalten auch Indexe [früher: Indices] liegen, optimiert MySQL die Abfrage sogar.

Wenn Du jetzt aber noch die Überschriften wie "Sommer 2003" anzeigen willst, udn ddas jeweils nur einmal, dann würde ich das wie folgt machen:

Da Du das ganze dann in einer Schleife mit while... ausgibst, könnntest Du ja nachdem Du nach Datum sortiert hast jeweils den Eintrag für die Jahreszeit in einer Variable speichern, udn immer wenn sich die verändert die neue Jahreszeit ausgeben, z.B. so:

$sql = "SELECT Jahreszeit, Ort, Datum, Aktion FROM Kalender ORDER BY Jahreszeit, Datum";

$erg = mysql_query($sql);
if (!$erg) {
    die("<br>Abfrage nicht erfolgreich");
}
else {

$viertel="";    //Initialisierung nicht vergessen, auch
                       // wenn PHP das "eigentlich" selber macht!

while ($Aus = mysql_fetch_array($erg)) {
        if ($viertel != $Aus["Jahreszeit"]) {
            echo "$viertel";
        }
        $viertel = $Aus["Jahreszeit"];
        echo "den Rest";
    }
}

Grüße aus http://www-braunschweig.de

Tom