我在这里有一个 SQL 查询来从数据库中获取课程信息。该变量courses
是 Session 从上一页保存的数组。这就是courses[]
我 var_dump 时的样子。我选择了 3 门课程放入会议中。
array(3)
{
[0]=> string(7) "CAD8405"
[1]=> string(7) "CON8413"
[2]=> string(7) "ENG8328"
}
我的$selectedYear
变量在 2012 年到 2014 年之间变化。也由会话保存。下面是我遇到问题的地方。我的查询很好,不需要检查。我无法$courseCode
显示为 my Course.CourseCode='$courseCode'
,因此我的查询不起作用。
这就是我发现它有点令人困惑的地方。该$courses
数组返回一个普通数组。但是当我这样做时,$courses[0] = $courseCode;
这var_dump($courseCode) = null
让我相信我需要的数据作为我的课程 ID 是$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>";
}