Letzten Eintrag eines Users anzeigen

Einmal im Jahr reicht, ist ja nur am 30.04.
Aber nun zurueck zum Thema, sonst werden wir noch wegen offtopic verklagt.

Ich versteh ehrlich gesagt nicht, warum der Weg ueber die ID unsauber sein soll.
Der einfachste Weg ist halt die ID, da diese eindeutig ist. Wenn er zwei Eintraege am selben Tag schreibt und nur vom Datum ausgeht ist nicht ersichtlich welcher Eintrag der neueste ist.
 
Wenn er zwei Eintraege am selben Tag schreibt und nur vom Datum ausgeht ist nicht ersichtlich welcher Eintrag der neueste ist.

Punkt für dich :)

Also moondancer - doch am besten den Timestamp verwenden (nimm am besten den von der PHP-Funktion time() - da bekommst du was du brauchst ;-) )


Die ID ist darum unsauber, weil man sie eigentlich nicht braucht und sie darum eine überflüssige Spalte darstellt.
In unserem Anwendungsbereich fällt das nicht zu sehr ins Gewicht, aber wenn's dann mal um größere Anwendungen (so ca. 20000 Einträge dürften da ausreichen) geht, da fallen dann überflüssige Spalten schon ins Gewicht
 
shutdown hat gesagt.:
Die ID ist darum unsauber, weil man sie eigentlich nicht braucht und sie darum eine überflüssige Spalte darstellt.
In unserem Anwendungsbereich fällt das nicht zu sehr ins Gewicht, aber wenn's dann mal um größere Anwendungen (so ca. 20000 Einträge dürften da ausreichen) geht, da fallen dann überflüssige Spalten schon ins Gewicht

Na gut, das koennte sich dann vielleicht doch ein wenig auswirken.
Die Frage ist jetzt noch, kann er den Timestamp auch in ein vernuenftiges Datum/Zeit-Gebilde umwandeln um ihn gegebenenfalls mit auszugeben? Ansonsten waere das ja im Grunde genommen auch eine "ueberfluessige" Spalte, genau wie bei mir die ID.
 
Danke fuer die Info. Werd's mir mal anschauen.

Nachtrag:
So krieg ich uebrigens die Zeit (also Datum, Zeit Zeitzone) fuer meine News:
$newsdate=date("D d.m.Y, H:i:s T");
 
Mach Dir doch eine Alias-Spalte mit STR_TO_DATE:
Code:
 SELECT beitrag.USER_ID, STR_TO_DATE(beitrag.datum,'%d.%m.%Y') AS realDate WHERE User_ID = wenDuWillst ORDER BY realDate DESC LIMIT 0,1
Auf die Weise kannst Du Deine Tabelle auch in ein vernünftiges Format bringen.
1. Neue Spalte datum2 als DATETIME anlegen.
2. UPDATE beitrag SET datum2=STR_TO_DATE(datum,'%d.%m.%Y');
3. Alte Spalte datum löschen
4. Neue Spalte datum als DATETIME anlegen
5. UPDATE beitrag SET datum=datum2
6. Spalte datum 2 löschen.

Man kann soviel mehr machen, wenn man die Spalte als DATETIME definiert.

Die Uhrzeit, falls Du sie denn irgendwo speicherst, würde ich ins selbe Feld mit einbringen, daher DATETIME. Wenn Du keine Uhrzeit hast, kannst Du natürlich auch DATE nehmen.

Formatiert bekommst Du es auch:
Code:
SELECT User_ID, DATE_FORMAT(datum,'%d.%m.%Y') AS formattedDate FROM Beitrag

Weitere Infos, über Dinge, die mit DATETIME-Feldern anstellen kannst, findest Du in der Doku.

Und da hier Leute wieder mit dem UNIX-Timestamp anfangen: Hier die Diskussion dazu.

Nimm ein DATETIME-Feld und die MySQL-Funktion NOW() zum eintragen.

Gruß hpvw
 
2 Dinge:

1) Die Diskussion kannst du ja wohl kaum als Argument für die Vorteile von Datetime verwenden - denn sie kam zu keinem Ergebnis!

2) Das Umformatieren wie du es beschriebe hast, is ja wohl ein wenig umständlich und in PHP wesentlich einfacher zu realisieren.

Aber da ich hier anscheinend immer wieder auf SQL-Puristen treffe, erwarte ich gar keine "freundliche" Antwort :)
 
Zurück