毎回お世話になっております。あの今phpmy-adminで作成したデータベースにphpでつなげました。ユーザがウェブページ上で入力したものを保存してテーブルのそれぞれのレコードを表示させました。そこのページに”削除”というボタンを押すとテーブルからそのレコードだけを消せるようにしたいのですがどのようにすれば良いでしょうか?下のようなものを考えたのですが失敗してテーブルに含まれる全てのレコードを間違って消してしまいました。すみませんがよろしくお願いします。
2つテーブルがあり、entries とcommentsテーブルのフィールドはこのようになっております。
entries entry_id title entry entered_timestamp
comments comment_id commentor_name commenter_email comment timestamp
<html>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<?php
require_once("connect.php");
$booDelete = 0;
$dbRecords = mysql_query("SELECT* FROM entries", $dbLocalhost)
or die("Problem reading table: " .mysql_error());
while ($arrRecords = mysql_fetch_row($dbRecords)) {
echo "<p>" .$arrRecords[0] ." ";
echo $arrRecords[1] . "";
echo $arrRecords[2] . "";
echo $arrRecords[3] ."</p>";
echo "<INPUT type ='submit' value ='Delete' name='submit'>";
}
if (isset($_POST["submit"])) {
$dbRecordDelete = mysql_query("DELETE FROM entries WHERE entry_id =
entry_id", $dbLocalhost);
}
?>
<form>
</body>
</html>
No.2ベストアンサー
- 回答日時:
やりようはいくつかあります。
以下例をあげておきます。
(1)formをわけ、ひとつひとつのformにhiddenでidをうめこんでやる
<form>
<input type="hidden" name="delid" value="<?PHP print htmlspecialchars($必要なid);?>">
<input type="submit" value="delete">
</form>
(2)submitボタンのnameで調整する(配列でやるとらく?)
<form>
<input type="submit" name="id[<?PHP print urlencode($必要なid);?>]" value="delete">
<input type="submit" name="id[<?PHP print urlencode($必要なid);?>]" value="delete">
・・・
</form>
(3)セッション配列を継承し、ボタン名でわたす
セッションで削除用idの一覧配列をつくっておき
<input type="submit" name="id[0]" value="delete">
<input type="submit" name="id[1]" value="delete">
のように、配列のキーをわたせるようにする
場合によってはクッキーをつかって渡すのでよいかと
yambejpさん、すごく時間かかってしまいましたが無事に解決することができました! お忙しいのに本当にありがとうございました。
No.1
- 回答日時:
>DELETE FROM entries WHERE entry_id =entry_id
って全てのデータを消せ・・といってますね
idにあたるものをサーバー側におくってやり
DELETE FROM entries WHERE entry_id =○○で消してください
この回答への補足
<html>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<?php
require_once("connect.php");
$intID = 0;
$arrID = array ();
$intcoount = 0;
$dbRecords = mysql_query("SELECT* FROM entries", $dbLocalhost)
or die("Problem reading table: " .mysql_error());
while ($arrRecords = mysql_fetch_row($dbRecords)) {
echo "<p>" .$arrRecords[0] ." ";
echo $arrRecords[1] . "";
echo $arrRecords[2] . "";
echo $arrRecords[3] ."</p>";
array_push($arrID, $arrRecords[0]);
echo "<INPUT type ='submit' value ='Delete' name='submit' id='<?php
$arrID[$intcount] ?>'>";
$intcount=$intcount+1;
}
if (isset($_POST["submit"])) {
$dbRecordDelete = mysql_query("DELETE FROM entries WHERE entry_id =
'$intID'", $dbLocalhost);
}
?>
<form>
</body>
</html>
お返事ありがとうございます!yambejpさん、すみません。yambejpさんの言うとおりにやろうとしたのですが”idにあたるものをサーバー側に送る”手順で突っかかってしまいました。
考えたのは、レコードとDeleteボタンを表示させるときにそのボタンそれぞれにentry_id と同じ数字を割り当てて、ボタンが押されたらその数字を送って、
DELETE FROM entries WHERE entry_id =ボタンの数字
としてみたいのですが、うまくいきません。何回も申し訳ないのですが、補足にコードを載せるのでチェックしていただけないでしょうか。ずうずうしいかもしれませんが宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DBの値をチェックボックスに反...
-
入力フォーム→確認画面→送信画...
-
phpで分からないエラーが出てし...
-
画面が更新されてもチェックボ...
-
HTMLで前の画面に戻る時、入力...
-
検索時の選択内容を保持する方法
-
チェックボックスのvalueを連結...
-
配列をhiddenで
-
PHPの関数実行
-
<input type="hidden" >で配列...
-
入力した部分を表示させたまま...
-
phpとデータベース
-
PHPのページ間による配列の受け...
-
複数選択の方法が分からないの...
-
PHP ボタンが押されたら処理を...
-
氏名をあいうえお順に並べて行...
-
HTMLのリンクをクリックするこ...
-
PHP初心者です。何処がエラーな...
-
複数のチェックボックスの確認
-
PHPで、ボタンを押すと同じペー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
検索時の選択内容を保持する方法
-
DBの値をチェックボックスに反...
-
ラジオボタンをsessionで使いたい
-
パラメーターを隠す
-
フォームへの前回入力値をクリ...
-
PHPで画像の渡しが上手く行きま...
-
フォームボタンを押すたびに数...
-
フォームでのリセットを使う方法
-
syntax error, unexpected '}' ...
-
PHPの関数実行
-
テキストボックスに初期値を入れる
-
入力した部分を表示させたまま...
-
phpで分からないエラーが出てし...
-
入力フォーム→確認画面→送信画...
-
画面が更新されてもチェックボ...
-
Javascript→PHPに...
-
配列をhiddenで
おすすめ情報