システムのバグ
班の人に聞いたりしてみると、幾つか大きすぎるバグが出ちゃってたので、数時間掛けて修正しました。
- 担当教員の検索が出来ない
- 講義名の検索が出来ない
- 担当教員の検索が出来ないのは、当たり前でした。シラバスというエンティティの中に担当教員名があるのではなく、教師というエンティティにあるので、当然、教師と言うテーブルも参照していなければならなかったわけです。
- 講義名の検索が出来ないのは、上と同じ現象でした。
とりあえず、これらを改善すべく・・・SQLのことをよくわかっていなかったので、ごにょごにょやって、フラグ3つぐらいつけたり、色々していて、結局、ものすごくシンプルで良かったです(笑)
検索条件が入力されているか確認して…
if(isset($_POST[kamokumei]) && ($_POST[kamokumei] != "")){ $kamokumei="subject.kamoku_name=\"".$_POST[kamokumei]."\" AND "; $jouken .= $kamokumei; } if(isset($_POST[gakubu]) && ($_POST[gakubu] != "")){ $gakubu = "syllabus.gakubu=\"".$_POST[gakubu]."\" AND "; $jouken .= $gakubu; } if(isset($_POST[gakka]) && ($_POST[gakka] != "")){ $gakka="syllabus.gakka=\"".$_POST[gakka]."\" AND "; $jouken .= $gakka; } if(isset($_POST[tantou]) && ($_POST[tantou] != "")){ $tantou = "professor.t_name=\"".$_POST[tantou]."\" AND "; $jouken .= $tantou; } if(isset($_POST[gakki]) && ($_POST[gakki] != "")){ echo $_POST[gakki]; $gakki = "syllabus.gakki=\"".$_POST[gakki]."\" AND "; $jouken .= $gakki; } if(isset($_POST[youbi]) && ($_POST[youbi] != "")){ $youbi="syllabus.youbi=\"".$_POST[youbi]."\" AND "; $jouken .= $youbi; } if(isset($_POST[koma]) && ($_POST[koma] != "")){ $koma="syllabus.koma=".$_POST[koma]." AND "; $jouken .= $koma; }
入力された検索結果をSQL文とくっつけます…
//SQL文 $sql = "SELECT syllabus.kamoku_num, subject.kamoku_name, professor.t_name, syllabus.youbi, syllabus.koma FROM syllabus, subject, professor, charge WHERE syllabus.kamoku_num = subject.kamoku_num AND charge.kamoku_num = subject.kamoku_num AND professor.t_num = charge.t_num AND $jouken;";
お決まりの、ANDを抜く作業も忘れずに…
//if文の条件分岐上、最後にANDが入ってしまうので取り除くため $sql=str_replace("AND ;",";",$sql);
はい!これでできあがりー