・前提
htmlのコードが無茶苦茶ですが
他者から引き継いだものなのでコードに対する突っ込みはナシでお願いします 笑
また、phpはほぼ触ったことがないです。
データベースに登録されているご褒美をプルダウン型のメニューから選択すると
そのご褒美を得られる仕組みになっているようです。
(ご褒美を得るにはポイントが必要)
・実現したいこと
プルダウン型のメニューから、データベースに登録されているご褒美を選択すると
登録されていたご褒美がデータベースから削除されるものを作りたいです。
・参考コード
ご褒美を選んで登録ボタンを押すコード
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>date.php</title> </head> <body> <?php $time = date("Y年n月j日 Ah:i"); print($time); ?> </body> </html> <br /> <br /> <html> <body> <form action="reward_ex_to.php" method="post" name="form" > <h1 class="contact-title">ご褒美</h1> <select name = "gohoubi"> <?php $dbcon = pg_connect("dbname=ossdb user=postgres password=password"); $sql = "select content from reward;"; $col = pg_query($dbcon, $sql);; while($data = pg_fetch_array($col)){ ?> <OPTION VALUE="<?php echo $data['content'] ?>"><?php echo $data['content'] ?></OPTION> <?php } pg_close($dbcon); ?> </select><br> <input type="submit" value="登録する" /> </body> </html> <br><br>
登録したものを確認するコード
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $gohoubi = $_POST["gohoubi"]; } ?> <title>routine_2.php</title> 登録内容は下記でよろしいですか? <form action="reward_tha.php" method="post"> <br><br> <?php echo $_POST[gohoubi]; $dbcon = pg_connect("dbname=ossdb user=postgres password=password"); if (!$dbcon) { die("<hr>pg_connect 失敗<hr>"); } $sql = "select point from reward where content = '$gohoubi'"; $result = pg_query ($dbcon, $sql); if (!$result) { pg_last_error($dbcon); die( "<br>pg_exec 失敗"); } $numrows = pg_num_rows($result); $fnum = pg_num_fields($result); for ($i = 0; $i < $numrows; $i++) { $row = pg_fetch_object($result, $i); echo "<tr align='center'>"; for ($x = 0; $x < $fnum; $x++) { $fieldname = pg_field_name($result, $x); $point = htmlspecialchars($row->$fieldname); } } echo $point; ?> <form action="reward_tha.php" method="post"> <input type="hidden" name="point" value="<?php echo $point; ?>"> <input type="hidden" name="action" value="<?php echo $gohoubi; ?>" </form> <form action="reward_tha.php" method="post"> <input type="hidden" name="action" value="<?php echo $gohoubi; ?>"> <input type="hidden" name="point" value="<?php echo $point; ?>" </form> <input type="button" value="内容を修正する" onclick="history.back(-1)"> <button type="submit" name="submit">確定</button>
・質問
ご褒美を登録する、の逆をやればいいので簡単かと思ったのですが
自分の知識と経験不足によりなかなか上手くいきません。
そこで質問です。
1 上記のコードでデータベースに登録される処理が行われるのはどこか?
2 データベースから削除する場合
delete from 表明
where 条件
だと思うのですが
プルダウン型のメニューから相手が選んだものを条件にする方法が分かりません。
以上、宜しくお願いします。
ーーーーーーーーーーーーー追記------------
reward_tha.phpのページに質問の答えになりそうなものがあるとアドバイス頂いたので掲載しておきます。
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $koudou = $_POST["action"]; $point = $_POST["point"]; } ?> <html lang="ja"> <head> <meta charset="UTF-8"> <title>確認フォーム</title> <link rel="stylesheet" href="style.css"> </head> <body> <div> <p>登録ありがとうございました。</p> <div> <div> <label>行動</label> <p><?php echo $koudou; ?></p> </div> <div> <label>ポイント</label> <p><?php echo $point; ?></p> </div> </div> <?php $dbcon = pg_connect("dbname=ossdb user=postgres password=password"); if (!$dbcon) { die("<hr>pg_connect 失敗<hr>"); } $sql1 = "SELECT total FROM routine order by day desc limit 1"; $result1 = pg_query ($dbcon, $sql1); if (!$result1) { pg_last_error($dbcon); die( "pg_exec 失敗<hr>" ); } $numrows1 = pg_num_rows($result1); $fnum1 = pg_num_fields($result1); for ($i1 = 0; $i1 < $numrows1; $i1++) { $row1 = pg_fetch_object($result1, $i1); echo "<tr align='center'>"; for ($x1 = 0; $x1 < $fnum1; $x1++) { $fieldname1 = pg_field_name($result1, $x1); $tasu = htmlspecialchars($row1->$fieldname1); } } $total = ($point + $tasu); $sql2 = "insert into routine values (now(),'','$koudou','$point','$total')"; $result2 = pg_query ($dbcon, $sql2); if (!$result2) { pg_last_error($dbcon); die( "pg_exec 失敗だよ<hr>"); } pg_close($dbcon); ?> <a href="toppage.php">トップページへ</a>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/23 01:34
2017/04/23 02:09
2017/04/23 07:13
2017/04/23 07:16