同じページに、データを削除したいかどうかを確認するフォームがあり、PHPコードがあります。今、私はデータベースからスーパーグローバルを使用して行を削除するが、私は問題を把握することはできません。常に「削除されません」とエコーします。また、ユーザーが削除しないことを選択した場合は、home.php
へのリダイレクトを実行したいと思います。同じページのフォームを持つデータベースから行を削除する
<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>
「POST」リクエストが行われていない可能性が高いためです。あなたが 'var_dump()'や 'print_r()'を使うことを妨げるものが何であるか分かりません。 –
$ _SERVER ["REQUEST_METHOD"]のプリントを行います。変数idはどこから来ていますか?私はあなたのフォームでそれを見ることができないので。私はそれが隠されたフィールドか何かであると仮定しました – Akintunde007
あなたのフォームには、その後に再利用しようとする "id"(varまたは入力)が表示されません... $ _POST ['id']や$ _GET [' id ']から来た? – OldPadawan