php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.09.2008, 19:10  
Neuer Benutzer
 
Registriert seit: 17.09.2008
Beiträge: 13
alexh befindet sich auf einem aufstrebenden Ast
Standard Bei Abfrage nur neuestes Datum auswählen

Es gibt eine Tabelle mit folgenden Werten (beispielhaft):

ID lfdNr. Name Datum Wert1 Wert2
1 3 a 08/2008 1 2
1 1 a 07/2008 4 2
2 4 b 08/2008 3 2
3 2 c 06/2008 5 4
3 5 a 07/2008 6 2

Usw.

Nun möchte ich in einer Abfrage jeweils nur die Werte des letzten Eintrag (Datums) anzeigen.
Also z.B.

ID Name Wert1 Wert2 Datum
1 a 1 2 8/2008
2 b 3 2 8/2008
3 c 6 2 7/2008
usw.

in einer abfrage 'select distinct ID from table order by datum desc' oder auch bei 'group by ID' wird immer das äteste Datum angezeigt. ich finde keine Lösung das neueste anzuzeigen.

Die Schwierigkeit (für mich) ist, dass das neueste Datum je Datensatz
sehr unterschiedlich sein kann und man daher nicht als Lösung where datum=... einbauen kann. Genauso ist die ID zu der mehrere Datensätze vorliegen nicht bekannt, man also nicht einfach where ID=.. order by datum machen kann.

Die Abfrage müsste also selbständig erkennen, bei welcher ID mehr als ein vorhanden ist und dann nur den datensatz mit dem neuesten datum ausgeben, egal ob das datum nun 07/2008 oder 07/2007 ist bei dem jeweiligen datensatz.

Vielen Dank für gute Ideen im Voraus.
alexh ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.09.2008, 10:14  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

also erstmal solltest Du ein datum in deiner DB auch als Datum deklarieren, dann kannst Du ganz einfach mit MAX() dein neuestes Datum je ID selektieren.
HPR1974 ist offline  
Alt 18.09.2008, 11:50  
Neuer Benutzer
 
Registriert seit: 17.09.2008
Beiträge: 13
alexh befindet sich auf einem aufstrebenden Ast
Standard

Ja, das Datum ist als soches ordentlich definiert und ja, es funktioniert einwandfrei.

Vielen Dank.
alexh ist offline  
Alt 22.09.2008, 13:53  
Neuer Benutzer
 
Registriert seit: 17.09.2008
Beiträge: 13
alexh befindet sich auf einem aufstrebenden Ast
Standard

Da war ich wohl etwas vorschnell mit der Aussage dass es funktioniert......

mit der Funktion max(datum) wird zwar das neueste Datum angezeigt, aber nicht die übrigen zu diesem Datum gehörigen Werte. Genau das ist es ja aber, was man möchte. Was nützt es das neueste Datum anzuzeigen, aber dann den Wert eines vorherigen Datums. Also ganz so leicht scheint es dann doch nicht zu sein.
alexh ist offline  
Alt 22.09.2008, 13:57  
Neuer Benutzer
 
Registriert seit: 17.09.2008
Beiträge: 13
alexh befindet sich auf einem aufstrebenden Ast
Standard

Um bei dem obigen Beispiel zu bleiben: Es würde dann angezeigt:

1 | a | 4 | 2 | 8/2008

also Werte aus 07/2008 aber das neueste datum..... ergo kompletter unsinn.

Vielleicht weiss ja jemand wie die Lösung auszusehen hätte. Danke
alexh ist offline  
Alt 22.09.2008, 14:28  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Welchen Datentyp hat den Datum? Leg es als Timestamp oder DateTime an dann kannst auch danach sortieren.
HStev ist offline  
Alt 22.09.2008, 14:31  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

am besten timestamp dann kannst du es beim ausgeben auch immer so umwandeln wie du es gerage brauchst.
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline  
Alt 22.09.2008, 14:32  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von JEGO Beitrag anzeigen
am besten timestamp dann kannst du es beim ausgeben auch immer so umwandeln wie du es gerage brauchst.
Kannst mit DateTime auch, allerdings dann aber direkt auf MySQL Seite die Frage is nur was schneller ist

must nur die MySQL Funktionen
UNIX_TIMESTAMP()
FROM_UNIXTIME()

verwenden.

Ich nutz eigentlich nur DateTime da man so auch direkt Datum u. Uhrzeit in der DB sieht.

Geändert von HStev (22.09.2008 um 14:38 Uhr).
HStev ist offline  
Alt 22.09.2008, 15:06  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von JEGO Beitrag anzeigen
am besten timestamp dann kannst du es beim ausgeben auch immer so umwandeln wie du es gerage brauchst.
Blödsinn, geht mit Datetime genau so, es is auch lesbar und du kannst Geschichten wie nach Monat gruppieren einfacher machen. Außerdem hast du dann nicht das "1970-Problem"
cycap ist offline  
Alt 22.09.2008, 15:08  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

egal welche variante er nimmt, es wir immer besser sein, als das datum so " 08/2008" zu speichern.
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage von: Datum bis Datum Renovatio Datenbanken 4 06.06.2008 07:57
Abfrage der 5 aktuellsten Zeilen nach Datum Renovatio Datenbanken 2 01.06.2008 20:00
Datum auswählen automatisch Tag setzen andrew22 HTML, Usability und Barrierefreiheit 3 03.09.2007 23:36
Abfrage nach Geburtsdatum an bestimmtem Datum maeck Datenbanken 17 25.06.2007 15:49
Datum bezogene mysql abfrage ApfeL Datenbanken 5 22.10.2006 16:03
WHERE abfrage nach Datum Datenbanken 2 06.03.2006 16:42
[Erledigt] Abfrage für "aktuelles Datum ohne Jahreszahl" ? Datenbanken 1 23.10.2005 09:47
wie sortiert man Datum bei SQL Abfrage? rockinchina PHP Tipps 2005-2 8 27.09.2005 12:57
Abfrage Datum mit gefilterten Werten.... Datenbanken 1 10.09.2005 19:59
Timecode während der Abfrage in lesbares Datum wandeln Datenbanken 3 20.08.2005 20:56
[Erledigt] String in Datum umwandeln und für Abfrage brauchbar machen PHP Tipps 2005 3 12.05.2005 00:24
[Erledigt] zellen abfrage mit php an mysql PHP Tipps 2005 2 02.03.2005 15:37
Abfrage nach Datum selektieren! Boennchen PHP Tipps 2005 8 22.01.2005 13:04
satz aus ergebnis nach abfrage auswählen hekto PHP Tipps 2005 9 07.01.2005 12:52
Datum Abfrage themonk PHP Tipps 2004 4 15.08.2004 01:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql neuestes datum, mysql neuestes datum, sql neustes datum, sql neuestes datum abfragen, sql aktuellstes datum, sql datensatz mit neuestem datum, sql abfrage neuestes datum, sql aktuellstes datum abfragen, mysql neustes datum, sql abfrage neustes datum, sql nur neuestes datum, sql datum auswählen, sql neueste datum, aktuellstes datum sql, neuestes datum sql, sql eintrag mit neuestem datum, neuestes datum mysql, sql eintrag neuestes datum, sql letzten eintrag datum, sql neustes datum finden

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:00 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum