Ich hatte wieder mit PHP angefangen, mich hinein zu fuchsen, bleibe aber bei einer bestimmten Stelle stehen.
Nämlich, wenn ich eine Funktion schreibe, um eine erstellte News zu löschen. Könnte jemand mir behilflich sein und sagen, was ich falsch gemacht hab?
PHP
public function listNewsACP()
{
$zeile = $this->db->query('SELECT * FROM news ORDER BY date DESC');
while ($row = $zeile->fetch(PDO::FETCH_ASSOC)) {
$id = $row['ID'];
if (isset($_POST['delid'])){
$delid = $_POST['delid'];
if ($delid == $id)
{
//$delid = $_POST['id'];
$query = $this->db->query('DELETE FROM news WHERE id = '.$id.'');
//echo '<script language="javascript">window.location.href="acp.php?page=listnews"</script>';
}
else
{
echo "Es ist ein Fehler aufgetreten!<br>";
}
}
else if (isset($_GET['delid'])){
$delid = $_GET['delid'];
if ($delid == $id)
{
//$delid = $_POST['id'];
$query = $this->db->query('DELETE FROM news WHERE id = '.$id.'');
//echo '<script language="javascript">window.location.href="acp.php?page=listnews"</script>';
}
else
{
echo "Es ist ein Fehler aufgetreten!<br>";
}
}
?>
<tr>
<th style="font-weight: 100;"><?php echo $row['ID'] ?></th>
<th style="font-weight: 100;"><?php echo $row['title'] ?></th>
<th style="font-weight: 100;"><a href="acp.php?page=listnews&delid=<?php echo $row['ID']?>">Löschen?</a></th>
</tr>
<?php
}
}
Alles anzeigen
Es kommt folgendes:
Nachdem ich auf "Löschen?" drücke, kommt die obere Mitteilung: "Es ist ein Fehler aufgetreten!". Und das immer so viele, je nachdem, wie viele News noch in der Liste vorhanden sind.
Zudem wird die Liste erst aktualisiert, nachdem ich die Seite neu aufgerufen habe und nicht sofort.
Ich bin mir sicher, es hat mit der while-Schleife zutun, nur bin ich mir gerade nicht im klaren, wie bzw wieso.