Zitat Zitat von fanrpg
sowas gibts? o.ô



Aber meine Möglichkeit tuts auch
Dadies ist aber allgemeingültige Konvention.
So hätte es auch kein "Index" gebraucht, wovon July sprach.
Man hätte einfach ab- oder aufsteigend, je nach Gusto nach Timestamp sortieren können da der Timestamp ein kontinuierlich im Wert steigender Integer ist. Kein String ohne Möglichkeit ihn sinnvoll zu sortieren.

Genug theoretisches Blahblah, hier die Scriptschnipsel:
Für's Eintragen des Timestamps in die DB-Tabelle:
PHP-Code:
$values "'$_POST[name]','$_POST[message]',time()";
$fields "name,message,timestamp";
$einfuegen "INSERT INTO comments ($felder) VALUES($inhalt)"
Ich bin mir jetzt nicht 100% sicher ob time() da an der Stelle funktioniert. Notfalls einfach vorher den Wert von time() (welches immer den aktuellen Timestamp zurückgibt) an eine Variable übergeben und diese dann mit zu den values zu packen.
Und natürlich noch die Feld- und Variablennamen anpassen. ich hab ja keine Ahnung wie die heißen und welche es gibt.

Beim Auslesen dann einfach dies tun:
Angenommen du hast den Timestamp mit mysql_result() aus der Datenbank ausgelesen in die Variable $timestamp hinein.
PHP-Code:
echo(date("d.m.Y H:i",$timestamp)); 
Du siehst, im Grunde sinds nur eine Handvoll mehr Zeilen Code.
Denk dran in dem DB- und Tabellenerstellungsteil auch das Feld 'timestamp' anlegen zu lassen.


Hier noch ein "kleiner" Tipp, beachte ihn nur wenn du noch Lust hast dich eingehender mit der Materie zu befassen:
Soweit ich weiß ist mysql_result() innerhalb einer While-Schleife sehr Performancefressend. Überhaupt ist deine Lösung eher ungünstig.
Ein besonderes Merkmal deines SELECTs ist ja, das du im Grunde auf alle Felder in deiner Tabelle zugreifst. Also empfehl ich dir mysql_fetch_array.
Das sähe dann in etwa so aus:
PHP-Code:
while($output=mysql_fetch_array($res)){
  echo 
"$output[na]$output[vn] am date("d.m.Y H:i",$output[timestamp]) <br>
  
$output[message]";

Die while()-Schleife ersetzt deine for()-Schleife.
mysql_fetch_array() liest also alles, was du zuvor mit deinem SELECT in der Datenbanktabelle zum Auslesen angesprochen hast, aus, so lange bist der Lesezeiger beim letzten auszugebenen Datensatz angekommen ist, überschreitet der Lesezeiger den letzten Datensatz, gibt die Funktion mysql_fetch_array() FALSE zurück und beendet damit automatisch die while-Schleife.

mysql_fetch_array() liest jeweils einen Datensatz in einen sogenannten Array.
Ich weiß nicht inwieweit du dich bereits mit Arrays auskennst, aber ich unterstell dir einfach mal mangelnde Kenntnisse.
Ein Array ist im Grunde eine Variable die mehrere Werte haben kann. Stell dir vor eine Variable ist ein Blatt auf das du nur einen Wert schreiben kannst. Ein Array ist dann ein Stapel Blätter und auf jedes dieser Blätter kannst du einen Wert schreiben. Du kannst die einzelnen Blätter auch direkt ansprechen über den sogenannten Key. Der Key ist das, was in der Eckigen Klammer steht. Er bezeichnet jeweils einen Wert.
mysql_fetch_array() verwendet als key jeweils den Feldnamen. Du kannst nun also mit dem Array jedes Feld ansprechen, solange es auch im SELECT-Statement angewählt wurde. Du brauchst die Felder nicht noch einzelnd mit mysql_result() auslesen.
Da du alle Felder mit dem * innerhalb des SELECT-Statements ansprichst, kannst du auch auf jedes Feld über den Array zugreifen.

Wenn du vielelciht noch nach Timestamp sortieren möchtest, also aktuellste Beiträge zuerst oder ältester Beitrag zuerst, mach es so:
PHP-Code:
$ausgabe "SELECT * FROM personen ORDER BY personen.timestamp ASC"
ASC steht für Ascending, aufsteigend.
DESC steht für Descending, absteigend.

BTW:
$ausgabe = "select * from personen;";
Das Semikolon innerhalb des Strings ist überflüssig, wenn nicht sogar falsch.
$ausgabe = "SELECT * FROM personen";
reicht vollkommen.

BTW²:
Du machst noch einige Fehler die typisch für mangelnde Erfahrung und Übung sind. Aber ich rieche großes Potential. Auch wenn es eher eine aufs Auge gedrückte Aufgabe ist, scheinst du dich mit Eigeninteresse damit zu beschäftigen. Hör bloß nicht auf mit PHP zu arbeiten.