PHPで授業時間割表作成システムを作っているのですが、科目と先生を入力して更新ボタンを押すと画面が遷移して、入力された科目と先生とが一致するものがデータベースに存在すればそれに応じた教室を出力させるようにしたいのですがうまく行きません。どのようにしたらいいのでしょうか、、、
データベース(データベース名:mon1)には
ーーーーーーーーーーーーーーーー
ID | subject|teacher | classroom
ーーーーーーーーーーーーーーーー
1 | 理科 | 田中 | 1−1
ーーーーーーーーーーーーーーーー
が入っており、理科と田中を入力して更新すると1−1を出力したいという次第です。
問題点
NULLと表示されてしまい値が出ない。
しかし、どこを変えたらいいのかわからない。という状況です。
該当のソースコード
PHP
ソースコード
1 更新する前のコード
<?php session_start(); $dsn = 'mysql:dbname=K; host=localhost; charset=utf8'; $db = new PDO($dsn,'root','root'); if(empty($_SESSION['m_id'])){ header('Location: login.php'); exit(); } ?> <html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> </head> <body> <form method="post"> <table> <tr><td>科目名</td> <td><input type="text" name="subjectmon1"/></td> <td></div><input type="submit" value="更新" formaction="subject2.php"/</div></td> </tr> <p> <tr><td>教員</td> <td><input type="text" name="teachermon1" /></td> </tr> <p> <tr><td>教室</td> <td><input type="text" name="classroommon1"/></td> <tr><td><td><td></div><input type="submit" value="登録" formaction="top.php"/</div></td> </tr> </table> </body></html> ### ### 2 更新後のコード <?php error_reporting(E_ALL); ini_set('display_errors',1); session_start(); $dsn = 'mysql:dbname=K; host=localhost; charset=utf8'; $db = new PDO($dsn,'root','root'); if(empty($_SESSION['m_id'])){ header('Location: login.php'); exit(); } $x = "SELECT * FROM mon1 WHERE 'subject'=? AND 'teacher'=?'"; $stt = $db->prepare($x); $stt ->execute(array($_POST['subjectmon1'],$_POST['teachermon1'])); $result = $stt->fetch(PDO::FETCH_ASSOC); ?> <html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> </head> <body> <form method="post"> <table> <tr><td>科目名</td> <td><input type="text" name="subject"/></td> </tr> <p> <tr><td>教員</td> <td><input type="text" name="teacher"/></td> </tr> <p> <tr><td>教室</td> <td><?=htmlspecialchars(var_dump($result['classroom']),ENT_QUOTES)?></td> <tr><td><td><td></div><input type="submit" value="登録" formaction="top.php"/</div></td> </tr> </table> </body></html>回答1件
あなたの回答
tips
プレビュー