Metallica
03-01-2002, 15:02
Hi Leute!
Mit folgendem Befehl ordne ich die DS in meinem Feld DATEhr
SELECT * FROM headrotation ORDER BY DATEhr
Das Dumme ist nur, dass das älteste Datum am Anfang der Tabelle steht und das aktuellste ganz am Ende.
Ich will es aber genau umgekehrt haben.
Was muss ich da am Befehl ändern??
Noch was:
Für meine DB-Administration verwende ich phpmyadmin 2.2.1
Besteht vielleicht die möglichkeit, das Sortieren meines Feldes DATEhr automatisch beim aufruf der index.php3 von phpmyadmin durchzuführen.
Bis jetzt mach ich es halt so, dass ich den Befehl immer in das Inputfeld von phpmyadmin eingebe.
Is aber ziemlich nervig, bei jedem start immer den gleichen befehl einzugeben damit er das datum sortiert.
[Editiert von Metallica am 03-01-2002 um 15:19]
SELECT * FROM moneymaker ORDER BY DATEmm DESC
Metallica
03-01-2002, 15:20
danke sky. das mit DESC wußte ich nicht.
hat gefuntzt.
Metallica
03-01-2002, 17:23
uhhh Sky, jetzt ist mir grad was aufgefallen.
Der Befehl SELECT * FROM headrotation ORDER BY DATEhr DESC nur bedingt.
hab soeben eine Testeintragung vorgenommen mit Datum 03.01.2002
Dieses Datum setzt er mir aber ganz ans Ende meiner Tabelle.
Warum passiert das jetzt bzw. wie kann ich das verhindern?
schmalle
03-01-2002, 17:35
wie die daten in deiner db stehen ist völlig BANANE ... wenn du sie wieder ausliest, werden sie wieder richtig sortiert! es sei denn, du hast beim eintrag irgendwelchen kauderwelsch gemacht :D
Metallica
03-01-2002, 17:49
ich trage in mein Feld DATEhr über php wie folgt ein:
$date = date("d.m.Y");
$sqlbefehl = mysql_query("INSERT INTO headrotation SET DATEhr = '$date'");
$blub = mysql_query($sqlbefehl);
und im textfeld von phpmyadmin gebe ich
SELECT * FROM headrotation ORDER BY DATEhr DESC
ein.
da ist doch kein kauderwelsch dabei.
[Editiert von Metallica am 03-01-2002 um 17:53]
schmalle
03-01-2002, 18:08
doch! wenn du das datum als d.m.Y einträgst, musst du es auch so wieder auslesen!
du trägst das datum im deutschen format in die db ( d.m.Y. )
damit kommt phpmyadmin nicht klar! immer im englischen format eintragen!
Metallica
03-01-2002, 18:34
und wie lese ich es im deutschen format aus?
speicher es als "Date"..das ist das spezielle datenbankformat..
dann gibt es die DATE_FORMAT Funktion..
..damit kannst du es formatieren..
zb..
DATE_FORMAT(name_der_datespalte, '%d.%m.%Y')
=> 03.01.2001
die komplette formatierungsmöglichkeiten entnehme bitte dem mysql manual..
[Editiert von KinNeko am 03-01-2002 um 21:49]
MelloPie
03-01-2002, 21:54
Oder speicher es als integer ab
<?
$date = time();
?>
dann einfach in die datenbank eintragen
dann kannst Du das Eintragsdatum darstellen wie Du magst, sogar mit Uhrzeit
Wenn Die das Format net passt kannste umformatieren
Metallica
04-01-2002, 07:26
hab jetzt versucht, ein neues Feld DATUM anzulegen mit Typ DATE. Dann steht da immer 0000-00-00 drinnen.
Wenn ich jetzt versuche, in phpmyadmin die Funktion CURDATE auszuführen, kommmt von mysql 'ne fehlermeldung dass er das aktuelle Datum in dieses Feld nicht einfügen kann.
Wenn ich allerdings bei einem beliebigen Datensatz auf ändern klick und den Standardwert von 0000-00-00 rauslösche, dann fügt mir sql das aktuelle Datum ein.
als standardwert hat ein Feld vom Typ date aber immer 0000-00-00. Das läßt er sich nicht rauslöschen.
wenn das ginge, dann müßte ich ja nicht über php eintragen, sondern die sql_db würde bei jedem neuen DS das aktuelle Datum eintragen wenn ich richtig informiert bin!?!?!
[Editiert von Metallica am 04-01-2002 um 07:32]
Metallica
04-01-2002, 08:51
Juppi!
hab's über php gelöst.
problem hat sich also erledigt!
MANY THXS!