前提・実現したいこと
php データベースの内容でsubmitボタンのvalueを変更したい
発生している問題・エラーメッセージ
下記ソースコードだとデータベース上のステータスが0でもelseの処理となりvalue="公開->非公開"となってしまいます。また、できたsubmitボタンを押したらデータベースの値を変更するSQL文を作成しましたが、もう少し短く記述する方法があるような気がします。(nameを分ける必要がないような…)一応、現在の記述でステータス変更はできています。
ご教授宜しくお願いいたします。
該当のソースコード
php
1<?php if (isset($value['status']) === 0) {?> 2 <input type="submit" name="change_status1" value="非公開->公開"> 3 <?php } else { ?> 4 <input type="submit" name="change_status2" value="公開->非公開"> 5 <?php } ?>
php
1// === から !== に 2<?php if (isset($value['status']) !== 0) {?> 3 <input type="submit" name="change_status1" value="非公開->公開"> 4 <?php } else { ?> 5 <input type="submit" name="change_status2" value="公開->非公開"> 6 <?php } ?> 7
php
1// ステータス変更 2 if (isset($_POST['change_status1']) === TRUE) { 3 // SQL文を作成 4 $sql = 'UPDATE drink_master 5 SET status = 1 6 WHERE drink_id = :drink_id'; 7 // SQL文を実行する準備 8 $stmt = $dbh->prepare($sql); 9 // SQL文のプレースホルダに値をバインド 10 $drink_id = $_POST['drink_id']; 11 $stmt->bindParam(':drink_id', $drink_id, PDO::PARAM_INT); 12 // SQL文を実行 13 $stmt->execute(); 14 // コミット処理 15 $dbh->commit(); 16 } 17 if (isset($_POST['change_status2']) === TRUE) { 18 // SQL文を作成 19 $sql = 'UPDATE drink_master 20 SET status = 0 21 WHERE drink_id = :drink_id'; 22 // SQL文を実行する準備 23 $stmt = $dbh->prepare($sql); 24 // SQL文のプレースホルダに値をバインド 25 $drink_id = $_POST['drink_id']; 26 $stmt->bindParam(':drink_id', $drink_id, PDO::PARAM_INT); 27 // SQL文を実行 28 $stmt->execute(); 29 // コミット処理 30 $dbh->commit(); 31 32 }
試したこと
var_dumpなど
補足情報(FW/ツールのバージョンなど)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/24 00:12