Haiopei: Eintragsid im Gästebuch

Hi ich verwende im meinem Gästebuch eine Eintragsid, um die Einträge zu sortieren.....

Ich hole die Daten mit:

$eintraege = mysql_query("select * from gb order by eintragsid DESC");

beim neuen eintrag soll die Eintragsid jedesmal eins höher sein, als die in der vorherigen Zeile... wie kann ich das machen?
Noch besser währe es natürlich, die Sachen nach Datum zu sortieren, aber sobald ich nach datum sortieren will, kommt ein Fehler....
das DAtum ist im Format: 13.03.2003

Danke für die Hilfe... schönen Abend noch

haiopei

  1. beim neuen eintrag soll die Eintragsid jedesmal eins höher sein, als die in der vorherigen Zeile... wie kann ich das machen?

    Wirf einen Blick in die MySQL-Anleitung, es gibt etwas namens AUTO_INCREMENT.

    Noch besser währe es natürlich, die Sachen nach Datum zu sortieren, aber sobald ich nach datum sortieren will, kommt ein Fehler....
    das DAtum ist im Format: 13.03.2003

    Vielleicht solltest Du besser einen passenden Datentyp für ein Datum benutzen: DATE, DATETIME oder TIMESTAMP. Auch dazu wirf einen Blick in die MySQL-Anleitung.

    Gruß,
      soenk.e

    1. wenn du deine datenbank anlegst kannst du dem feld als extra auto_increment zuweisen, logischerweise bei der id. somit hat jeder eintrag eine andere, jeweils um 1 erhöhte id.

      benutze als datumstyp das format int(11). ausserdem musst du das datum im unix-timestamp-format abspeichern!
      solltest du das datum so abspeichern wie du es oben gepostet hast, gibt es ein problem, weil dann der 29.1.2003 "neuer" ist als der 1.12.2003.

      1. Halihallo Matthias

        benutze als datumstyp das format int(11). ausserdem musst du das datum im unix-timestamp-format abspeichern!

        Ja, aber wie Sönke schon richtig bemerkt hat, gibt es in den meisten DB (u.a. auch
        MySQL) _passende_ Datentypen. Zudem speichert INT ein 32-bit Integer, der ist auf ca.
        0-4.2 Mia. begrenzt => Es kann maximal 10 Stellen geben, nebenbeibemerkt.

        solltest du das datum so abspeichern wie du es oben gepostet hast, gibt es ein problem, weil dann der 29.1.2003 "neuer" ist als der 1.12.2003.

        Ja, und genau _das_ Problem hast du bei passenden Datentypen nicht.

        DATETIME => 2003-01-23 12:59:16
        TIMESTAMP=> 20030123125916   (über UNIX_TIMESTAMP kriegt man die 32-bit Timestamp, die du
                                      in INT(11) speichern würdest)

        Da könnte man selbst bei Stringvergleichen die richtige Sortierung erreichen.

        Ein Verwenden von INT(11) für Datum-/Zeitspeicherung ist nur in wenigen Fällen sinnvoll.

        Viele Grüsse

        Philipp