- ベストアンサー
DBに登録されているデータの削除
こんにちは。お世話になっております。 題名にあるように、DB(MySQL)に登録のあるデータの削除なのですが、where句により一覧表示を指せた際、チェックボックスも表示させ、ボタンを押す事によりチェックされたデータを削除したいと考えています。 このような場合は配列を使う(?)、とまでは分かるのですが、具体的なコードが思い浮かばないもので・・・ 以上、初歩的(毎度ですが…汗)な質問かと思われますが、適切なキーワードが思い浮かばず、調べても分からないため質問させて頂きました。お忙しい中恐縮ですが、少し踏み入ったヒントだけでもご指導いただければ有難く思っております。宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんんちは、 現在どんなソースを書いているか分かりませんが ちょっと間違えてましたが、下記のような感じで表示して。 //DBからデータ所得してhtml表示 $sql = "SELECT文"; $res = mysql_query($sql,$conn); while ($row = mysql_fetch_array($res)){ echo '<form action="up.php?no='.$row['no'].'" method="post">'; echo '<input name="check" type="checkbox" value="1">'; echo '<input type ="submit" name = "submit" value = "更新">'; echo '</form>'; } up.phpで、 $no = $_GET['no']; $check = $_POST['check']; $checkが1ならば以降DB削除処理 簡単に書くとこんな感じでしょうか。
その他の回答 (2)
- qaz_qwerty_me
- ベストアンサー率19% (214/1115)
#1さんのフォロー テストなど実運用でない場合は、不要なデーター=削除でも問題ないのですが、実運用となると削除したあとで・・・『削除を取り消したい』という事は結構頻繁にあります(笑) そこで#1さんの回答のように運用上は削除されているがdb上は存在する状態を作るのに削除フラッグなどの名称でフラッグを作って運用すると・・・便利です。 実際の削除は、PHPなどのアプリではなく権限を持ったユーザーがdbを直接 操作して削除フラッグを選択して削除します。 この操作で削除した場合は、バックアップなどからリカバーしないと回復しません。
お礼
qaz_qwerty_me様 はじめまして、こんばんは。 運用面に関し、貴重なご意見をいただけたと思います。有難う御座いました。
- f_motion
- ベストアンサー率53% (7/13)
データを一つだけ消したいなら、特にチェックボックスとかは、必要ないかも、 複数の場合は、ちょっと面倒です。 $noにデータNOを入れて、 削除プログラムでGETでそのNOを取得してそのデータを削除すれば大丈夫だと思います。 ただ、通常データ削除は、UPDATEで FLAGなどフィールドを作成してその値を、1とかにして表示しないようにしたりするのが、 一般的ですが。 where (){ echo '<form action="?no='.$no.'" method="post">'; echo '<input type ="submit" name = "submit" value = "更新">'; echo '</form>'; }
お礼
f_motion様 はじめまして、こんばんは。 お忙しい中、コードまで記述していただき有難う御座います。 チェックボタンは使わず、GETで渡しで…というところまでは、「なるほど・・ああして、こうして・・」イメージが沸いてきたところです。有難う御座います。 しかしながら、出来ることならチェックボタンを表示させ、チェックの入ったデータを削除する・・という流れにしたいのです。 先ほどのアドバイスをヒントに、チェックボタンを取り入れたものをイメージを描いているのですが・・どうにも上手く行きません。引き続きヒントだけでも頂けたら幸いです。
お礼
f_motion様 こんばんは。お世話になっております。 只今、お教えいただいたコードをヒントに、試行錯誤ながらにも色々と試しているところです。 取り急ぎお礼まで・・有難う御座いました。 追って結果報告させて頂きます!
補足
f_motion様 こんばんは、お世話になっております。 ご報告遅れてしまいましたが、只今、チェックボタンを利用したコードにて削除をする事まで出来ました! まだまだ不具合もあったりで、完成の域には達しておりませんが、お返事が長引くのも恐縮ですので、ひとまず、ここは「解決できた」とさせて頂きます。 色々と有難う御座いました。