MySQL und PHP: Datetime und Datumssortierung

ScoutX

Captain
Registriert
März 2003
Beiträge
3.833
Der Codeschnipsel s.u. , der das Datum nicht richtig sortiert, da der Datumswert nicht aus der SQL Tabelle genommen wird und ich für die Ausgabetabelle unbedingt die Kalenderwoche zusätzlich brauche.

Programmiert habe ich dies nicht selbst muss aber diese Funktion nachträglich einbauen. In Mysql liegt Datetime vor.

Code:
$sql = "select besteller, bestellnr, b.jahrgang, b.klasse, date_format(bestelldatum,'%d.%m.%Y')  datum, ifnull(name,'basis') name, vorname, fach, buch.isbn, titel, imageurl, regal, status 
FROM  litdb.fach natural 
join litdb.buch 
JOIN (litdb.bestellung b 
LEFT JOIN userdb.passwd u 
ON ( b.besteller = u.user )) 
ON ( buch.isbn = b.isbn ) 
where status != \"gebucht\" 
order by datum, b.jahrgang, titel, b.klasse";
In der Tabelle Bestellung liegt das abgefragte Datum unter der Rubrik "Bestelldatum" im besagten Datetime Format.

Fehler a: Versuch ich hinter %Y noch ein %W, wird mir nicht die Kalenderwoche sondern der Wochentag (schriftlich) ausgegeben.
Ein
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
$phpdate = strtotime( $mysqldate );
hat nichts bewirkt oder ich setze es verkehrt ein.

Fehler b: Sortierung des Datums: Fix date_format(bestelldatum,'%d.%m.%Y') datum AS datum-foo, if ...
brachte eine leere Tabelle hervor.

Edit: das %W war falsch, da Php also %v. Nur leider wird immernoch falsch nach Datum sortiert.

Edit gelöst. Es wird Zeit fürs Wochenende. blind.

Für andere: im Printbereich auch das umbenennen nicht vergessen.

Die relevanten Codezeilen:
date_format(bestelldatum,'%d.%m.%Y %v. Woche') as datum2
order by bestelldatum
$bestelldatum = $line->datum2;
 
Zuletzt bearbeitet:
Zurück
Oben