Order by date

M-GT

Erfahrenes Mitglied
Order by date +++ Versteckter DB eintrag

Hi Leute
Ich hab mir so ein kleines Script gebastelt und nun wollte ich die Datenbank Einträge nach dem Datum ordnen also: ORDER BY date in meinem Fall

Aber dann gibt mir die DB immer das älteste Datum zuerst an... und ich brauche aber immer das neueste zuerst also in etwa so:

30.10.2005
10.3.2005...

usw...

Bitte helft mir ;)
 
Zuletzt bearbeitet:
Ehm noch eine Frage:
wie übergebe ich in die Datenbank etwas versteckt?

also ich hab in einem Formular das so eingefügt:
PHP:
<input name="date" type="hidden" id="date" value="<?php $datums_array = getdate();print "$datums_array[mday].$datums_array[mon].$datums_array[year]";?>">

Aber dann übergibt er mir nichts...

wie geht das ohne das der "User" davon was sieht?
 
Wenn der User in den Quellcode schaut, dann sieht er auch das Hidden-Feld.
Wofuer soll das denn sein? Um die Zeitpunkt des Eintrags in die Datenbank festzuhalten?
Ich denke da waere es sinnvoller gleich vor dem DB-Eintrag das Datum zu holen anstatt es ueber das Formular zu uebergeben.
Das koennte ja auch recht einfach gefaelscht werden, sodass jemand z.B. Eintraege 2 Jahre im Voraus macht. ;)
 
ja im prinzip soll mit dem EIntrag in die Db das Datum mitgegeben werden, weil nach diesem Datum werden nacher die EInträge sortiert...

Aber wie würdest du es machen?
 
Ich hab das so, dass nach dem Absenden des Formulars, gleich bevor in die Datenbank eingetragen wird der Timestamp geholt wird.
Dadurch hat der User dann auch garkeine Moeglichkeit am Eintragsdatum rumzuspielen weil es ja erst direkt vor dem Eintragen geholt wird.
 
So ungefaehr sieht das bei meinem Forum aus.
Ist nicht ganz der Originalcode, nur mal so spontan nachprogrammiert.
PHP:
if ((isset($_POST['submit'])) && (!empty($_POST['title'])) && (!empty($_POST['text'])))
{
 $timestamp=time();
 mysql_query("insert into forum_posts (title,text,postdate) values ('".$_POST['title']."','".$_POST['text']."','$timestamp')",$db);
}

So, jetzt ist auch die Zeit drin.
Im Original ist das etwas komplexer, z.B. wird ja auch noch die ID des postenden Users eingetragen und ein paar andere Daten. Aber als Beispiel sollte es wohl reichen.
 
und wenn du den Datentyp Datetime in deiner DB verwendest, dann kannste das auch einfach mit now() machen:

PHP:
 $sql = "INSERT INTO table (name, datum) VALUES ('hallo', now())";
beachte dabei, dass du um now() keine Ticks oder Anführungszeichen setzten darfst, da dies eine Funktion der MySQL DB ist!
 
Zurück