前提・実現したいこと
入力内容をデータベースに登録し、表示したいのですが、うまくいきません。
発生している問題・エラーメッセージ
Notice: Undefined variable: sql in C:\xampp\htdocs\graduate\M_class1.php on line 87 Warning: mysqli_query(): Empty query in C:\xampp\htdocs\graduate\M_class1.php on line 87
該当のソースコード
M_register.php(入力フォーム)
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset="UTF-8"> <title>課題登録</title> </head> <body> <h1>登録する課題を選択してください。</h1> <a href='M_index.php'>戻る</a> <form action="M_class1.php" method="POST"> <table border="1"> <tr> <th width="100" nowrap>年度</th> <th width="100" nowrap>クラス</th> <th width="100" nowrap>回次</th> <th width="100" nowrap>ファイル形式</th> <th width="100" nowrap>課題ジャンル</th> <th width="100" nowrap>難易度</th> </tr> <tr> <th width="100" nowrap> <select name="year"> <option value="">選択してください</option> <option value="2020">2020</option> <option value="2019">2019</option> </select> <th width="100" nowrap> <select name="class"> <option value="">選択してください</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </select> <th width="100" nowrap> <select name="number"> <option value="">選択してください</option> <option value="第1回">第1回</option> <option value="第2-3回">第2-3回</option> <option value="第4-5回">第4-5回</option> <option value="第6-7回">第6-7回</option> <option value="第8-9回">第8-9回</option> <option value="第10回">第10回</option> <option value="第11-12回">第11-12回</option> <option value="第13-14回">第13-14回</option> <option value="第15回">第15回</option> </select> <th width="100" nowrap> <select name="mso"> <option value="">選択してください</option> <option value="Word">Word</option> <option value="Excel">Excel</option> <option value="PowerPoint">PowerPoint</option> <option value="その他">その他</option> </select> <th width="100" nowrap> <select name="genre"> <option value="">選択してください</option> <option value="出席課題">出席課題</option> <option value="基礎課題">基礎課題</option> <option value="発展課題">発展課題</option> </select> <th width="100" nowrap> <select name="level"> <option value="">選択してください</option> <option value="易しい">易しい</option> <option value="普通">普通</option> <option value="難しい">難しい</option> </select> </tr> </table> <br> <p>課題タイトル<br> <input type="text" name="practice" value="" size="50"> <p>期限<br> <input type="text" name="time" value="" size="50"> <p>含まれる内容(ねらい)<br> <input type="text" name="purpose" value="" size="200"> <p>サンプル・その他留意事項<br> <input type="text" name="other" value="" size="200"> <p>課題ファイル<br> <input type="text" name="file" value="" size="50"> <p><input type="submit" value="課題を登録する"></p> </form> </body> </html>
M_class1.php(表示画面)
<?php //変数初期化 $error = ""; $new_year = ""; $new_class = ""; $new_number = ""; $new_mso = ""; $new_genre = ""; $new_level = ""; $new_practice = ""; $new_time = ""; $new_purpose = ""; $new_other = ""; $new_file = ""; //POSTされたとき if($_SERVER["REQUEST_METHOD"] == "POST"){ $link = mysqli_connect("localhost", "root", "2019minato"); mysqli_query($link, "set names UTF8"); mysqli_select_db($link, "test"); // ■新規追加処理 if(isset($_POST["submit_add"])){ $new_year = htmlspecialchars($_POST["new_year"], ENT_QUOTES, 'UTF-8'); $new_class = htmlspecialchars($_POST["new_class"], ENT_QUOTES, 'UTF-8'); $new_number = htmlspecialchars($_POST["new_number"], ENT_QUOTES, 'UTF-8'); $new_mso = htmlspecialchars($_POST["new_mso"], ENT_QUOTES, 'UTF-8'); $new_genre = htmlspecialchars($_POST["new_genre"], ENT_QUOTES, 'UTF-8'); $new_level = htmlspecialchars($_POST["new_level"], ENT_QUOTES, 'UTF-8'); $new_practice = htmlspecialchars($_POST["new_practice"], ENT_QUOTES, 'UTF-8'); $new_time = htmlspecialchars($_POST["new_time"], ENT_QUOTES, 'UTF-8'); $new_purpose = htmlspecialchars($_POST["new_purpose"], ENT_QUOTES, 'UTF-8'); $new_other = htmlspecialchars($_POST["new_other"], ENT_QUOTES, 'UTF-8'); $new_file = htmlspecialchars($_POST["new_file"], ENT_QUOTES, 'UTF-8'); if($error==""){ $sql = "INSERT INTO class1 VALUES('$new_year','$new_class','$new_number','$new_mso','$new_genre','$new_level','$new_practice','$new_time','$new_purpose','$new_other','$new_file')"; } } // ■sql文処理 if($error==""){ mysqli_query($link, $sql); $new_year = ""; $new_class = ""; $new_number = ""; $new_mso = ""; $new_genre = ""; $new_level = ""; $new_practice = ""; $new_time = ""; $new_purpose = ""; $new_other = ""; $new_file = ""; } } ?> <html> <head> <meta http-equiv="Content-Type" charset="UTF-8"> <title>クラス1</title> </head> <body> <h1>クラス1</h1> <a href='M_index.php'>戻る</a> <h2>第1回講義</h2> <?php $link = mysqli_connect('localhost', 'root', '○○○○'); if (!$link) { die('接続失敗です。'.mysqli_error()); } $db_selected = mysqli_select_db($link,'test'); if (!$db_selected){ die('データベース選択失敗です。'.mysqli_error()); } mysqli_query($link,'SET NAMES utf8'); $result1 = mysqli_query($link,'SELECT id,year,class,number,mso,genre,level,practice,time,purpose,other,file FROM class1 WHERE class="1"'); while ($row = mysqli_fetch_assoc($result1)) { print ('<table border="1">'); print ('<tr>'); print ('<th width="100" nowrap>').('年度').('</th>'); print ('<th width="100" nowrap>').('クラス').('</th>'); print ('<th width="100" nowrap>').('回次').('</th>'); print ('<th width="100" nowrap>').('ファイル形式').('</th>'); print ('<th width="100" nowrap>').('課題ジャンル').('</th>'); print ('<th width="100" nowrap>').('難易度').('</th>'); print ('</tr>'); print ('<tr>'); print ('<td width="100" nowrap>').($row['year']).('</td>'); print ('<td width="100" nowrap>').($row['class']).('</td>'); print ('<td width="100" nowrap>').($row['number']).('</td>'); print ('<td width="100" nowrap>').($row['mso']).('</td>'); print ('<td width="100" nowrap>').($row['genre']).('</td>'); print ('<td width="100" nowrap>').($row['level']).('</td>'); print ('</tr>'); print ('</table>'); print ('<table border="1">'); print ('<tr>'); print ('<th width="100" nowrap>').('課題タイトル').('</th>'); print ('<th width="100" nowrap>').('期限').('</th>'); print ('<th width="250" nowrap>').('含まれる内容').('</th>'); print ('<th width="200" nowrap>').('その他留意事項').('</th>'); print ('<th width="180" nowrap>').('ファイル').('</th>'); print ('</tr>'); print ('<td width="200" nowrap>') .($row['practice']). ('</td>'); print ('<td width="100" nowrap>') .($row['time']). ('</td>'); print ('<td width="250" nowrap>') .($row['purpose']). ('</td>'); print ('<td width="200" nowrap>') .($row['other']). ('</td>'); print ('<td width="180" nowrap>') .($row['file']). ('</td>'); print ('</tr>'); print ('</table>'); print ('<br>'); } $close_flag = mysqli_close($link); ?> <h2>第2-3回講義</h2> <h2>第4-5回講義</h2> <h2>第6-7回講義</h2> <h2>第8-9回講義</h2> <h2>第10回講義</h2> <h2>第11-12回講義</h2> <h2>第13-14回講義</h2> <h2>第15回講義</h2> </body> </html>
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
class1というテーブルがあり、中身は空です。それが原因なのでしょうか
<追記>
具体的にどこをどのようにすればよいかを教えていただきたいです。よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー