テストのために登録した、同じメールとパスワードのユーザーがたくさんあります。
重複したデータを削除するファイルをつくりました。
もし公開するのであれば、危険なので書きかえる必要があります。
名前は違いますがすべて同じメールとパスワードで登録したユーザーです。
この中で61番の佐々木みどりさんを削除してみます。
削除ができました。
61番がありません。
////////////////////////////////////////////////////////
このなかでわかりにくかったことを書かせていただきます。
下の $id =(int)$_GET['id'];の部分です。
$id = (int)$_GET['id']; $dbh = new PDO('mysql:host=localhost;dbname=saien;charset=utf8', $user, $pass); $sql = "DELETE FROM customer WHERE id = :id"; $stmt = $dbh->prepare($sql); $stmt->bindValue( ':id', $id, PDO::PARAM_INT); $stmt->execute();
ユーザー名の横の削除のリンクはこのようになっています。
echo htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8').'さん '; echo "<a href=delete_user.php?id=" . hsc($row['id']), ">削除</a>\n";
少しわかりにくいのですが
echo "<a href=delete_user.php?id=$row['id']) ">削除</a>\n";
このようになっています。
delete_user.phpにこのデータの$row[id]でidを渡しています。
上にも書きましたが、受け取るほうは$id =(int)$_GET['id'];で受け取っています。
送るほうはGETでは送らずに、受け取るほうはGETで受け取っています。
上の写真で61番を削除したときのリンクに
?id=61と書かれています。
この61を受け取って削除しています。
わかりにくくて申し訳ありません。
POSTの場合にはmethod="post"などと指定して送りますが、GETの場合はgetの指定をしていません。
ここのところがよくわかりませんでした。