MYSQL KAlender nach Datum gruppieren, nach Uhrzeit sortieren

kamstarr

Mitglied
Hallo Leute,

ich arbeite gerade an einem Veranstaltungskalender. Klappt auch so weit ganz gut.
Habe ne Suche wo man eine Stadt eingeben kann und eine Abfrage die wie folgt aussieht:

PHP:
$daten = mysql_query('SET lc_time_names = "de_DE" ');
			$daten = mysql_query(' SELECT veranstaltung, time_format(uhrzeit, "%H:%m ") as uhrzeit, date_format(datum, "%W, %e. %M %Y") as datum,  veranstaltungsort ... FROM `xy` WHERE  `stadt`=\''.$sucheeingabe.'\' OR `stadt`=\''.$sucheauswahl.'\'  ORDER BY datum ASC, uhrzeit ASC ' , $conID) ; 
			if(mysql_num_rows($daten) > 0) {
			while($row=mysql_fetch_array($daten))
			{
			echo "<table style='text-align: center; width: 250px; height: 15px; background-color: rgb(234, 234, 234);'>            <tbody><tr><td><font class=\"font2\">".$row['datum']."</font></td></tr></tbody></table>";
    		echo("<br><br>");
            echo "<font class=\"font4\">".$row['uhrzeit']."</font>";
			echo("&nbsp;");
			echo "<font class=\"font4\">Uhr</font>";
    		echo("<br><br>");
			...

So der zeigt mir alle Ergebnisse an. Funktioniert.

Problem ist, dass ich bei jedem Termin, durch das ECHO eine Datumsangabe bekomme. Ich möchte aber, dass alle Termine vom gleichen Tag unter einer Datumsangabe stehen.

Habe schon mit DISTINCT und GROUP BY rumgespielt aber kriege es nicht hin.
ECHO müsste dann wahrscheinlich weg oder Brett vor dem Kopf
 
Nimm eine PHP Variable, z.B. $curDate und merke dir, bei welchem Datum du gerade bist. So lange sich das Datum deines aktuellen Datensatz nicht von $curCate unterscheiden, gibst du deine Termine aus, sollte es sich unterscheiden, steckst du das neue Datum in die Variable und gibst z.B. eine Überschrift mit dem neuen Datum aus.

PHP:
while($row=mysql_fetch_array($daten))
{
    if($curDate != $row['datum'])
    {
        $curDate = $row['datum'];
        echo $curDate;
    }
    echo "...Termine...";
}
 
Danke für die Antwort. Das wird aber leider nicht klappen.

Das Datum ist unterschiedlich. Also nochmal:

Event-Kalender z.B.

19.03.2010 Party Köln
19.03.2010 Fete Düsseldorf
20.03.2010 Feier Berlin

Meine Wunsch-Ausgabe:

19.03.2010 Party Köln
Fete Düsseldorf
20.03.2010 Feier Berlin

Also, wenn das gleiche Datum mehrfach vorkommt soll es nur einmal angezeigt werden und der Rest aber schon.

Weitere Ideen?
 
Nein, wenn ich mir ein Datum merke dann bringt das ja nichts, es kann ja mehrere Tage geben in dem es mehrere Veranstaltungen gibt!!
Versteht Ihr?

Oder steh ich auf dem Schlauch?
 
Speichere dir das letzte Datum in einer $temp-Variable;


Code:
$temp = null;

Deine Abfrage--

while ($daten = mysql_fetch_assoc()) {
  if ($temp!=$datum) {
    echo $datum;
    $temp = $datum;
  }
  usw--
}

Ah man sollte so spät keine Beiträge mehr beantworten..
Wenn du dir dein Datum schon einmal sortiert hast, dann kann ein doppeltest auftreten nicht vorkommen. Dies geschieht in deinem SQL-Befehl.

Denke bitte daran, die übergebenen Parameter zu maskieren.
 
Zuletzt bearbeitet:
Zurück