前提・実現したいこと
PHP データベースからの読み込み
発生している問題・エラーメッセージ
1の和食を読み込んでほしいのですが、選択して下さい。が選ばれます。
他項目で文字の読み込みは成功しているので、おそらくifが機能していないのだと思うのですが間違いが分かりません。
該当のソースコード
情報追加用
$user="suzuki"; $pass="Suzuki8"; $recipe_name=$_POST['recipe_name']; $howto=$_POST['howto']; $category=(int)$_POST['category']; $difficulty=(int)$_POST['difficulty']; $budget=(int)$_POST['budget']; try{ $dbh = new PDO('mysql:host=localhost;dbname=db1;charset=utf8',$user,$pass); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO recipes (recipe_name,category, difficulty, budget, howto) VALUES (?,?,?,?,?)"; $stmt = $dbh->prepare($sql); $stmt->bindValue(1, $recipe_name, PDO::PARAM_STR); $stmt->bindValue(2, $category, PDO::PARAM_INT); $stmt->bindValue(3, $difficulty, PDO::PARAM_INT); $stmt->bindValue(4, $budget, PDO::PARAM_INT); $stmt->bindValue(5, $howto, PDO::PARAM_STR); $stmt->execute(); $dbh=null; echo "レシピの登録が完了しました。"; } catch (EXCEPTION $e){ echo "" . htmlspecialchars($e->getMessage(), ENT_QUOTES,'UTF-8') . "<br>"; die(); } ?>
情報読み込み・編集用
<?php $user="suzuki"; $pass="Suzuki8"; try{ if(empty($_GET['id'])) throw new Exception('ID不正'); $id=(int)$_GET['id']; $dbh=new PDO('mysql:host=localhost;dbname=db1;charset=utf8',$user,$pass); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql="SELECT * FROM recipes WHERE id = ?"; $stmt=$dbh->prepare($sql); $stmt->bindValue(1,$id,PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); $dbh=null; } catch (EXCEPTION $e){ echo "" . htmlspecialchars($e->getMessage(),ENT_QUOTES,'UTF-8') . "<br>"; die(); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>入力フォーム</title> </head> <body> レシピの投稿<br> <form method="post" action="update.php"> 料理名:<input type="text" name="recipe_name" value="<?php echo htmlspecialchars($result['recipe_name'],ENT_QUOTES,'UTF-8'); ?>"> <br> カテゴリ: <select name="category"> <option value="">選択して下さい。</option> <option value="1" <?php if ($result['category'] === 1) echo "selected" ?>>和食</option> <option value="2" <?php if ($result['category'] === 2) echo "selected" ?>>中華</option> <option value="3" <?php if ($result['category'] === 3) echo "selected" ?>>洋食</option> </select> <br> 難易度: <input type="radio" name="difficulty" value="1" <?php if ($result['difficulty']===1) echo "checked" ?>>簡単 <input type="radio" name="difficulty" value="2" <?php if ($result['difficulty']===2) echo "checked" ?>>普通 <input type="radio" name="difficulty" value="3" <?php if ($result['difficulty']===3) echo "checked" ?>>難しい <br> 予算:<input type="budget" name="howto" value="<?php echo htmlspecialchars($result['budget'],ENT_QUOTES,'UTF-8');?>">円 <br> 作り方: <textarea name="howto" cols="40" rows="4" maxlength="150"><?php echo htmlspecialchars($result['howto'],ENT_QUOTES,'UTF-8');?></textarea> <br> <input type="hidden" name="id" value="<?php echo htmlspecialchars($result['id'],ENT_QUOTES,'UTF-8'); ?>"> <input type="submit" value="送信"> </form> </body> </html>
var_dump($result['category']);の結果
int(1)