• 締切済み

登録データの繰り返し削除

こんばんは。お世話になっております。 DBを利用し掲示板を作っているのですが、初回に投函されたものだけを検索結果として表示させ、チェックボックスにて削除できるよう、以下のようなスクリプトを記述してみたのですが、value値をauto_incrementであるidだと、初回投函のみのデータだけが削除され、投函の返信は残ったままとなってしまいます。 // データベース接続   ・   ・ // 削除データ取得 if (@$_POST["c1"]) { $c1 = $_POST["c1"]; $sql = "DELETE FROM table1 WHERE (id IN ("; for ($i = 0; $i < count($c1); $i++) { $sql .= intval($c1[$i]); if ($i < count($c1) - 1) { $sql .= ", "; } else { $sql .= "))"; } } mysql_query($sql, $conn) or die("エラー"); } //テーブル接続   ・   ・ while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { echo "<form method=\"POST\" action=\"".$_SERVER["PHP_SELF"]."\">"; echo "<br>"; echo "<input type=\"checkbox\" name=\"c1[]\" value=\"".$row["id"]."\">";   ・   ・  以下省略 以上のままだと初回投函のみの削除となるため、一回の動作で返信も削除したいために、投函に属する値(id_keyとして同じ値を設定済み)にしたいと考えているのですが、for文中におけるコード設定が分からず、アドバイスをいただければと投函させて頂きました。 ループ条件の設定によるものなのでしょうが、その条件を設定するためのコードまで浮かんで来ません。 何処をどう説明したら良いのか分からず、分かりにくい説明になっておりますが、ヒントなどいただければ幸いに思っております。お忙しい中恐縮ですが宜しくお願い致します。

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

入力値のチェックはすんだとして $del_id = implode(",", $_POST["c1"]); $sql = "DELETE FROM table1 WHERE (id IN(" . $del_id . ")) OR (id_key IN(" . $del_id . "))"; でしょうか

sadacha
質問者

お礼

php504様 おはよう御座います。お世話になっております。 朝早くからの回答を有難う御座います。 これから外出せねばならず、今内容を確認する事は出来ませんが、追って必ずご報告させて頂きますので、引き続きのご指導を宜しくお願い出来ればと思います。 取り急ぎお礼まで・・。有難う御座いました。

sadacha
質問者

補足

おはよう御座います。補足欄から失礼します。 あれからお教えいただいたコードを基に、手持ちの本やネットにて調べながら試行錯誤を繰り返しておりますが、上手く行く事が出来ません。 質問の仕方が悪かったのでしょうが、検索結果表示は、この「教えてgoo」のように質問のみを表示させ、削除する際、この質問と属する回答を削除したいと考え、その質問に属する値(回答は質問と同じ数値をid_keyとして登録してある)として、id_keyを基に削除させたいと考えています。 当然、そのid_keyという値は、回答がなく質問だけ(結果id_keyは1つだけ)のものもあれば、多くの回答があり、その回答の数だけid_keyが存在する事になります。 ・・・イメージ的に、この「教えてgoo」にてお話しすると、カテゴリー毎に表示した質問一覧上に、チェックボタンを設置し、そのチェックをした質問およびその回答を全て削除したいと、考えております。 丸投げのつもりは一切なく、本投函後も自分でも引き続き行っていきますが、ご指導賜れば幸いに思っております。以上、宜しくお願い申し上げます。

すると、全ての回答が全文表示されます。

関連するQ&A