Auf der gleichen Seite habe ich ein Formular, das den Benutzer fragt, ob er die Daten löschen möchte oder nicht, und ich habe den PHP-Code. Jetzt möchte ich eine Zeile aus der Datenbank mit Superglobals löschen, aber ich kann das Problem nicht herausfinden. Es gibt immer Echos "NICHT GELÖSCHT". Auch wenn der Benutzer wählt, nicht zu löschen, möchte ich eine Umleitung zu home.php
durchführen.Löschen Zeile aus der Datenbank mit Formular auf der gleichen Seite
<body>
<h2>Are you sure you want to delete the student?</h2>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="submit" name="submit" value="YES" />
<input type="submit" name="submit" value="NO" />
</form>
<?php
$fields = array('id', 'student', 'firstname', 'lastname', 'email');
$student= array();
foreach ($fields as $field) {
$student[$field]="";
}
if(isset($_POST['id'])) {
$id = htmlspecialchars($_POST['id']);
}
else if(isset($_GET['id'])) {
$id = htmlspecialchars($_GET['id']);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(!empty($id)) {
include "inc_DBConnect.php";
$SQLString = "DELETE FROM students WHERE id = '$id'";
$SQLQueryResult = mysqli_query($DBConnection, $SQLString);
if($SQLQueryResult === FALSE) {
echo "<p>There was an error retrieving the record.<br />\n</p>";
} else {
echo "<p>Student deleted</p>";
}
} else {
echo "NOT DELETED";
}
}
?>
</body>
am wahrscheinlichsten, weil Sie 'POST' Anfrage nicht tun. Ich bin mir nicht sicher, was Sie davon abhält, 'var_dump()' oder 'print_r()' zu benutzen und überprüfen Sie das zuerst selbst, anstatt hier etwas auszuarbeiten. –
einen Ausdruck von $ _SERVER ["REQUEST_METHOD"]; und woher kommt auch die variable id? weil ich es nicht auf deiner Form sehen kann. Ich nehme an, es wäre ein verstecktes Feld oder etwas gewesen – Akintunde007
Ihr Formular zeigt keine "ID" (var oder Eingabe), die Sie danach wieder verwenden möchten ... wo tun $ _POST ['id'] oder $ _GET [' Komm 'her? – OldPadawan