Hi,
~~~php <section class="comment_main"> <?php if(isset($_POST['show_comments']) && $_POST['comment_pid'] === $row['p_id']) { ?> <?php while($row2 = $com->fetch()) { ?> <section class="all_comments_from_post"> Kommentar: <?php echo $row2['comment']; ?></p> <br> <p>KommentarID: <?php echo $row2['kid']; ?></p><br> <?php if($_SESSION['id'] === $row2['id']) { ?> <p><input type="hidden" name="kid" value="<?php echo $row2['kid']; ?>"></p> <p><input type="submit" name="delete_comment" value="<?php echo $row2['kid']; ?> (Kommentar loeschen)"></p> <?php } ?> </p> </section>
Das <form></form> umschließt (weil's nicht in jedem Schleifendurchlauf steht) also alle Kommentare?
Dann hast Du mehrere <input name="kid"> im selben Formular. PHP kriegt das nicht auf die Reihe, wenn der Name keine [] enthält, und nimmt dann m.W. den letzten. Die [] hinzuzufügen hilft aber auch nicht wirklich, denn dann bekommst Du ein Array mit allen kids. Unabhängig davon, welcher Button genutzt wurde.
==> nicht ein form für alles, sondern ein form für jeden löschbaren Kommentar.
Oder aber den Wert des delete_comment auslesen, da wird nur der von dem Button übertragen, der ausgelöst wurde.
cu,
Andreas a/k/a MudGuard