Ich möchte gerne eine Seite erstellen, auf der Täglich News eingetragen werden. Auf der Startseite sollen aber nur die neuesten fünf angezeigt werden. Der Rest soll in einem Archiv abzurufen sein.
Technisch soll das so gehen, dass beim Eintragen in eine MySQL-Datenbank der neueste Eintrag immer die ID 1 zugewiesen wird und die anderen IDs jeweils um einen erhöht werden. So kann mit einem einfachen Script die Startseite immer die Datensätze 1-5 auslesen.
ich fürchte, daß Du das nicht so ohne weiteres hinbekommen wirst. Du mußt ja dann jedes Mal, wenn ein neuer Eintrag in die News geschrieben wird, allen bisher vorhanden News eine neue ID zuweisen. Das ist vergleichsweise aufwendig zu programmieren. Viel einfach ist es, wenn Du jedem Datensatz ein Gültigkeitsdatum zuweist und in der Newsabfrage einbaust, daß nur die Datensätze angezeigt werden sollen, deren Gültigkeitsdatum noch nicht erreicht sind. Alle anderen werden dann im Archiv angezeigt. Damit werden dann nur die Nachrichten angezeigt, die wirklich noch aktuell sind. Als Beispiel, bei dem das so realisiert ist, kannst Du Dir ja mal unsere Seite unter http://www.tu-bs.de/cgi-fb7/index2.php anschauen.
Schwierig wär es nicht wirklich… lass einfach eien Query vorher los mit
UPDATE tabelle SET ID = ID + 1
bevor du einfügst…
aber wie der andere Antwortende halte ich von dieser Idee auch gar nichts… mach es lieber über ein Datumsfeld und sortiere die Abfrage danach absteigend
vielen Dank für die Tipps!
Leider habe ich das Problem, dass das Layout für die Startseite fest steht, das heißt, dass es sich nicht um eine einfache Tabelle handelt, sondern um Absatzformatierungen, die leider nicht so einfach aufgebaut werden können (daher wäre das mit den IDs einfach gewesen).
wieso versucht Du nicht einfach statt ID 1 bis 5 auszulesen, die Datensätze MAX(ID) bis MAX(ID)-5 auszulesen. Es ist einfacher die ID zu erhöhen und nur die 5 größten Einträge auszulesen, als alle Einträge um 1 zu verschieben in der Tabelle.
SELECT MAX(ID) AS ID_max FROM tabelle
SELECT * FROM tabelle WHERE ID >= (ID_max-5)
Vielleicht klappt es ja so
CU
Clemens Meier
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hmmmmm,
irgendwie will der nicht die maximale ID auslesen.
Ich habe mich da mal ein wenig umgehört und mitbekommen, dass der Befehl max() immer mehrere Parameter, die durch Komma getrennt werden, in den Klammern stehen haben muss. Aber auch dann funzt es nicht
Scheinbar liest PHP nicht die maximale ID aus.
Kann vielleicht jemand mal ein funktoinierendes Beispielscript geben?
Vielen Dank!
Simon
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Vielen Dank für den Tipp! Nachdem das jetzt ja so wunderbar funktioniert würde mich noch interessieren, wie es möglich ist, unter Zuhilfenahme dieses Befehls den vorletzten oder drittletzten Eintrag herauszufiltern. Das sollte doch auch möglich sein, oder?
Vielen Dank!
Simon
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]