ここに、データベースからコース情報を取得するためのSQLクエリがあります。変数courses
は、前のページからSessionによって保存された配列です。var_dumpすると次courses[]
のようになります。セッションに入れるコースを3つ選択しました。
array(3)
{
[0]=> string(7) "CAD8405"
[1]=> string(7) "CON8413"
[2]=> string(7) "ENG8328"
}
私の$selectedYear
変数は2012年から2014年の間で変化します。これもセッションによって保存されます。以下は私が問題を抱えているところです。私の質問は大丈夫です、それをチェックする必要はありません。$courseCode
として表示されないCourse.CourseCode='$courseCode'
ため、クエリが機能しません。
これは私がそれがちょっと混乱するところであると私が見つけたものです。配列は通常の$courses
配列を返します。しかし、$courses[0] = $courseCode;
そうすると、コースIDとして必要なデータがアレイvar_dump($courseCode) = null
のキーであると私は信じるようになります。$courses[]
にアクセスしようとすると$courses[1]
、コードはキーを最初のデータとする多次元配列と見なします。しかし、私は間違っている可能性が
あります私の配列のキーを抽出するためのより良い方法はありますか?
for($i = 0; $i < count($courses); $i++)
{
//$courses[$i] = $courseCode;
$courseCode = $courses[$i];
$comfirmationString = "SELECT Course.CourseCode, Course.Title, Course.WeeklyHours, Semester.SemesterCode FROM Course, Semester, CourseOffer
WHERE Semester.YearNum='$selectedYear' AND Course.CourseCode='$courseCode'
AND Course.CourseCode=CourseOffer.CourseCode AND Semester.SemesterCode=CourseOffer.SemesterCode";
if($comfirmationResult = mysqli_query($link, $comfirmationString))
{
while($row = mysqli_fetch_assoc($comfirmationResult))
{
echo "<tr><td>$row[CourseCode]</td><td>$row[Title]</td><td>$row[WeeklyHours]</td><td>$row[SemesterCode]</td></tr>";
}
}
else
{
echo "<p>Query error: " + mysqli_error($link) + "</p>";
}
}
以下は、変数をどのように保存したかを示すコード$courses[]
です。クエリの結果を取得し、チェックボックスをオンにすると、このcourseIDがcourses[]
配列にスローされます。
if($Result2013 = mysqli_query($link, $string2013))
{
echo "<form action='CourseSelection.php' method='get'>
<table><tr><th>Code</th><th>Course Title</th><th>Hours</th><th>Term</th><th>Select</th></tr>";
while($row2013 = mysqli_fetch_assoc($Result2013))
{
echo "<tr><td>$row2013[CourseCode]</td><td>$row2013[Title]</td><td>$row2013[WeeklyHours]</td>
<td>$row2013[Term]</td><td><input type='checkbox' name='courses[]' value=$row2013[CourseCode]></td></tr>";
}
echo "</table>";
}