###前提・実現したいこと
phpとMySQL1を利用して簡易掲示板を作っています。
入力データをMySQLに保存し、そこからデータを取得・表示させる流れです。
その中で、削除機能、編集機能を実装しようとしているのですが、そのうち削除機能に問題がありまして、質問させていただきます。
###発生している問題・エラーメッセージ
DELETEを行ってから新しく投稿をINSERTで入力すると、DELETEした配列部分に入ってしまいます。
例えば
1,内容 2,内容 3,内容
となっているうちの2を削除してから新規投稿すると
1,内容 4,内容 3,内容
となってしまいます。その後は3の後ろに5、6、…と続きますが、削除を繰り返すともっとずれてしまいます。
これを修正したいです。
###該当のソースコード
周辺がごちゃごちゃしていて見にくくなってしまうので、該当部分だけ記載します。
PHP
1//投稿部分 2$sql='INSERT INTO kadai(name,comment,date,pass) VALUES(:name,:comment,now(),:pass)'; 3 4$stmt=$pdo->prepare($sql); 5 6stmt->bindParam(":name",$name,PDO::PARAM_STR); 7$stmt->bindParam(":comment",$comment,PDO::PARAM_STR); 8$stmt->bindParam(":pass",$pass,PDO::PARAM_STR); 9 10$name=$_POST["name"]; 11$comment=$_POST["comment"]; 12$pass=$_POST["password"]; 13 14$stmt->execute(); 15 16… 17 18//削除部分 19$sql="DELETE FROM kadai WHERE id=:id"; 20 21$stmt=$pdo->prepare($sql); 22 23$stmt->bindParam(":id",$id,PDO::PARAM_INT); 24 25$id=$_POST["deletenumber"]; 26 27$stmt->execute(); 28
投稿部分、削除部分をhtmlに設置したそれぞれのボタンを押したときで条件分岐させています。
###試したこと
ずれないようにするために、以下のことを考えました。
・UPDATEで内容を「削除済み」に書き換え、表示する際の条件分岐で「削除済み」となっているものをはじく
⇒これだと、番号が残ってしまっているため編集ボタンと干渉してしまうということと、万が一「削除済み」というコメントを投稿した際に意図せずはじかれる可能性があるかな…と感じました。
・UPDATEで番号を上書きし、表示の条件分岐ではじく
⇒具体的には、番号を0にUPDATEすればいいかなと考えていますが、送信された番号をWHEREを使って指定するやり方がよくわからないので実装できていません。
自分でも深く理解できていないため、わかりにくい文章になってしまい申し訳ありません。よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/16 17:21