Frage zur Datumssortierung

so sollte es eher was werden

PHP:
echo "<h3>Termine :</h3><br />               '.substr($conn_id['offene_termine'],8,2).'.
                                                               '.substr($conn_id['offene_termine'],5,2).'.
                                                              '.substr($conn_id['offene_termine'],0,4).'<br /> 
<br /><h4>Erledigte Termine: </h4><br />'.substr($conn_id['erledigte_termine'],8,2).'.
                                                              '.substr($conn_id['erledigte_termine'],5,2).'.
                                                               '.substr($conn_id['erledigte_termine'],0,4).'



aber schick mir mal deinen code falls es nicht klappt
 
Zuletzt bearbeitet:
Ich vermute mal das ich das falsch eingebaut habe, hier mal meine Zeile 36:
PHP:
echo "<h3>Termine :</h3><br />'.substr($offene_termine['datum'],8,2).'.'.substr($offene_termine['datum'],5,2).'.'.substr($offene_termine['datum'],0,4).'<br /> <br /><h4>Erledigte Termine: </h4><br /> $erledigte_termine";
Richtig, du hast einmal die Doppelten und ein andermal die einfachen Anführungszeichen verwendet. Damit musst du sorgfälitg HTML und PHP trennen, z.B.
PHP:
echo "<h3>Termine :</h3><br/>" .substr($offene_termine['datum'],8,2).".".substr($offene_termine['datum'],5,2).".".substr($offene_termine['datum'],0,4)." <br /> <br /><h4>Erledigte Termine: </h4><br />".$erledigte_termine;


istmiregal hat gesagt.:
Wenn ich jetzt das Datum anders ausgeben möchte (06.09.2009) wird nur nach dem Tag sortiert. Aber vielleicht finde ich das noch raus wie ich das Datum in der Abschließenden Ausgabe in d.m.Y umwandeln kann, oder ich bekomme wieder einen Tipp
Du kannst dir in dem SELECT Teil das Datum so raussuchen, wie du es gerne hättest und hängst am Ende einfach ein ORDER BY an.
PHP:
SELECT DATE_FORMAT(`datum`, '%d.%m.%Y') AS `datum`,...usw... ORDER BY datum
 
Zuletzt bearbeitet:
Du kannst dir in dem SELECT Teil das Datum so raussuchen, wie du es gerne hättest und hängst am Ende einfach ein ORDER BY an.
PHP:
SELECT DATE_FORMAT(`datum`, '%d.%m.%Y') AS `datum`,...usw... ORDER BY datum

Ja das habe ich auch schon heraus gefunden. So wie du es schreibst wird das Datum berücksichtigt, aber er fängt dabei mit dem Tag an zu sortieren. Dadurch kommt bei mir immer die Ausgabe, das z.B. ein Termin für den 03.10. (heute 15.9) bei den erledigten Terminen sortiert wird. Das wollte ich vermeiden.

bobbydigital hat gesagt.:
aber schick mir mal deinen code falls es nicht klappt
hier noch einmal das Script mit Datum (Y.m.d):
PHP:
 $now = date("d.m.Y",mktime());
  
  $query = "SELECT 
                DATE_FORMAT(`datum`, '%d.%m.%Y') AS `datum`,
                `zeit`,
                `was`,
                `wo_wie`
                 
          FROM
                `spzg_kalender` ORDER BY datum   ";
  
  $sql = mysql_query($query) or die($query.' Fehlermeldung der DB: '.mysql_error());
  
    $erledigte_termine = "";
    $offene_termine = "";
    
    while($conn_id = mysql_fetch_object($sql)){ 
    
        if ($conn_id->datum < $now) 
           $erledigte_termine .= "<b>".$conn_id->datum." &nbsp;-&nbsp; ".$conn_id->zeit."</b><br>
                                         ".$conn_id->was." &nbsp;&nbsp; ".$conn_id->wo_wie." <br>"; 
        else
           $offene_termine .= "<b>".$conn_id->datum." &nbsp;-&nbsp; ".$conn_id->zeit."</b><br>
                                         ".$conn_id->was." &nbsp;&nbsp; ".$conn_id->wo_wie." <br>"; 
    } 
    
    echo "<h3>Termine :</h3><br /> $offene_termine <br /> <br /><h4>Erledigte Termine: </h4><br /> $erledigte_termine";
Ich habe das gleich Script aber auch noch für den unix-timestap geschrieben, Vielleicht ist das leichter umzustellen.
Danke schon mal für die Hilfe!
Gruß
Uwe
 
Wenn in $conn_id->datum ein UNIX Timestamp ist, dann kannste deinen While-Block ergänzen:

if ($conn_id->datum < $now)
$erledigte_termine .= "<b>".date("d.m.Y",$conn_id->datum)." &nbsp;-&nbsp; ".$conn_id->zeit."</b><br>
".$conn_id->was." &nbsp;&nbsp; ".$conn_id->wo_wie." <br>";
else
$offene_termine .= "<b>".date("d.m.Y",$conn_id->datum)." &nbsp;-&nbsp; ".$conn_id->zeit."</b><br>
".$conn_id->was." &nbsp;&nbsp; ".$conn_id->wo_wie." <br>";

Müsste eigentlich funktionieren wenn ich mich nicht täusche, für andere Formatierungsangaben: date Funktion
 
Wenn in $conn_id->datum ein UNIX Timestamp ist, dann kannste deinen While-Block ergänzen:



Müsste eigentlich funktionieren wenn ich mich nicht täusche, für andere Formatierungsangaben: date Funktion

Danke das war der richtige Tip!
Also mit timestamp die Datenbank füttern und die sortierung machen lassen und nachher über date(d.m.Y) umwandeln lassen.

Danke für die "lehrreiche Nachhilfe" und guten Ratschläge.
Falls es gewünscht wird kann ich mein Script hier noch einmal posten.
Gruß
Uwe
 
Zurück