So wie ich das nachvollziehen kann, hast du einen großen Strukturfehler: Die Variablen $id_new, $name_new, $inhalt_new und $comment_new kriegen beim zweiten Aufruf der Seite die Inhalte des untersten Eintrags aus der Liste. Du überschreibst sie nämlich bei jedem Schleifendurchlauf immer - und immer wieder. Ist das Absicht? :confused:
Folgender Denkansatz möge dich auf die richige Bahn führen: Die oben genannten Variablen brauchst du in der zweiten Schleife! Dort musst du die korrigierten Gästebucheinträge aus $_POST auslesen. Nicht in der While-Schleife.
Und die zweite Abfrage sollte so aussehen:
$eintrag = "UPDATE Tabelle SET name='$name_new', inhalt='$inhalt_new', comment='$comment_new' WHERE id='$id_new'";
Ich gehe hierbei davon aus, dass die Spalte id der sich selbst automatisch erhöhender Primärschlüssel ist. Den solltest du also nicht verändern, sondern als Filterbedingung in der WHERE-Klausel benutzen.
Viel Erfolg mit deinem Gästebuch wünscht dir DJ spinball!