EDIT:PHPコードをもう一度やり直そうとしましたが、これはうまく機能しますが、フィルタを押す度にすべてのレッスンを印刷します。また、私はフィルタリングするときに2つのテーブルを一緒に接続するように見えることはできません。インストラクターの名前は別のテーブルインストラクターからのもので、私はこれを選びます。ここに私のPHPコードです。PHPを使用した複数のドロップダウンメニューオプションのフィルタリング
<?php
include('connect-db.php');
if($_POST){
if($_POST['Days'] == 'Monday') {
$query = "SELECT * FROM lesson WHERE Day='Monday'";
}elseif($_POST['Days'] == 'Tuesday') {
$query = "SELECT * FROM lesson WHERE Day='Tuesday'";
}elseif($_POST['Days'] == 'Wednesday') {
$query = "SELECT * FROM lesson WHERE Day='Wednesday'";
}elseif($_POST['Days'] == 'Thursday') {
$query = "SELECT * FROM lesson WHERE Day='Thursday'";
}elseif($_POST['Days'] == 'Friday') {
$query = "SELECT * FROM lesson WHERE Day='Friday'";
}elseif($_POST['Days'] == 'Saturday') {
$query = "SELECT * FROM lesson WHERE Day='Saturday'";
}elseif($_POST['Days'] == 'Sunday') {
$query = "SELECT * FROM lesson WHERE Day='Sunday'";
}elseif($_POST['Days'] == 'All') {
$query = "SELECT * FROM lesson";
}
if($_POST['Instructors'] == 'Trevor') {
$query = "SELECT * FROM lesson INNER JOIN instructor
ON lesson.Instructor_ID = instructor.Instructor_ID WHERE Forename='Trevor'";
}elseif($_POST['Instructors'] == 'Laura') {
$query = "SELECT * FROM lesson INNER JOIN instructor
ON lesson.Instructor_ID = instructor.Instructor_ID WHERE Forename='Laura'";
}elseif($_POST['Instructors'] == 'Rachel') {
$query = "SELECT * FROM lesson INNER JOIN instructor
ON lesson.Instructor_ID = instructor.Instructor_ID WHERE Forename='Rachel'";
}elseif($_POST['Instructors'] == 'Ryan') {
$query = "SELECT * FROM lesson INNER JOIN instructor
ON lesson.Instructor_ID = instructor.Instructor_ID WHERE Forename='Ryan'";
}elseif($_POST['Instructors'] == 'Steve') {
$query = "SELECT * FROM lesson INNER JOIN instructor
ON lesson.Instructor_ID = instructor.Instructor_ID WHERE Forename='Steve'";
}elseif($_POST['Instructors'] == 'All') {
$query = "SELECT * FROM lesson INNER JOIN instructor
ON lesson.Instructor_ID = instructor.Instructor_ID";
}
if($_POST['TypeLessons'] == 'Keeping Fit') {
$query = "SELECT * FROM lesson WHERE Type_of_Lesson='Keeping Fit'";
}elseif($_POST['TypeLessons'] == 'How to Swim') {
$query = "SELECT * FROM lesson WHERE Day='How to Swim'";
}elseif($_POST['TypeLessons'] == 'Relaxing Sessions') {
$query = "SELECT * FROM lesson WHERE Day='Relaxing Sessions'";
}elseif($_POST['TypeLessons'] == 'Being Sporty') {
$query = "SELECT * FROM lesson WHERE Day='Being Sporty'";
}elseif($_POST['TypeLessons'] == 'All') {
$query = "SELECT * FROM lesson";
}
$result = mysql_query($query);
if(!$result) {
echo 'Could not get data: ' . mysql_error();
}
while($row = mysql_fetch_array($result)) {
echo "Lesson ID: {$row["Lesson_ID"]} <br> " .
"Name: {$row["Name"]} <br> " .
"Day: {$row["Day"]} <br> " .
"Start Date: {$row["Start_Date"]} <br> " .
"Start Time: {$row["Start_Time"]} <br> " .
"End Time: {$row["End_Time"]} <br> " .
"Instructor: {$row["Forename"]} <br> " .
"Type of Lesson: {$row["Type_of_Lesson"]} <br> " .
"Number of Places: {$row["No_of_Places"]} <br> <br> ";
}
}
?>
複数のドロップダウンメニューオプションをフィルタリングして、ユーザーが「検索レッスン」をクリックしたときにクエリが表示されるようにしました。しかし何らかの理由で同じエラーメッセージが表示され続けます。Notice:未定義インデックス:Days。 PHPコードはそれを拾うべきであるにもかかわらず、そうではないようで、私はそれを理解できません。以下は私のコードです。私はすべてのPHPの選択を完了していません。 また、PHPを選択する際にこれらのオプションを選択すると、これらのクエリを一度プリントアウトする方法もあります。どうもありがとうございます。
<form action="tester_filter.php" method="post">
<select name="Days">
<option value="All" selected="selected">All days</option>
<option value="Monday">Monday</option>
<option value="Tuesday">Tuesday</option>
<option value="Wednesday">Wednesday</option>
<option value="Thursday">Thursday</option>
<option value="Friday">Friday</option>
<option value="Saturday">Saturday</option>
<option value="Sunday">Sunday</option>
</select>
<select name="Instructors">
<option value="All" selected="selected">All instructors</option>
<option value="Trevor">Trevor</option>
<option value="Laura">Laura</option>
<option value="Rachel">Rachel</option>
<option value="Ryan">Ryan</option>
<option value="Steve">Steve</option>
</select>
<select name="TypeLessons">
<option value="All" selected="selected">All types</option>
<option value="Keeping Fit">Keeping Fit</option>
<option value="How to Swim">How to Swim</option>
<option value="Relaxing Sessions">Relaxing Sessions</option>
<option value="Being Sporty">Being Sporty</option>
</select>
<input type="submit" value="search lessons" name="submit" />
</form>
tester_filterのコードをすべて表示してください。php、それで、私たちは正しい答えを出すことができます。 – Tommy
それは今のところすべてだった。私は 'Days'を手に入れようとしていたので、後でこれらのクエリーをどのように印刷するのか分からない。私はオンラインで見て、私は理解していないAJAXを使用しています。 – Jade