编辑:添加了第一个 SQL 查询。
我网站的一部分有两个下拉菜单。两者中的所有选项都是使用 SQL 查询填充的。Dropdown#1 是类部分的列表(例如 A1)。一旦教授选择了一个部分,Dropdown#2 就会填充学生 ID(例如 1234567)。
学生信息见表 1。这些信息中有“教授姓名”列。为了将学生与班级部分相关联,我需要将“professorName”列与表 2 中的相同列进行匹配,因为班级部分仅在表 2 中找到。
直到这里一切都很好,因为在我的查询结束时,我输入了 ORDER BY student ID。但是,其中两个班级部分与两个不同的教授相关联。为了处理这个问题,我使用下面的代码来循环遍历每个教授的名字。
$from site = $_POST['section'];
$query = ("SELECT professorName FROM Table 2 WHERE classSection='$fromsite'");
$NumberofProfessorNames = $objMSSQL->getAffectedRows();
echo $NumberofProfessorNames;
for ($j=0; $j<$NumberofProfessorNames; $j++)
{
$section= $query[$j][professorName];
$output = $objMSSQL->getTable("SELECT DISTINCT StudentID from table1 WHERE professorName='$section' ORDER BY StudentID");
for ($i=0; $i<$objMSSQL->getAffectedRows(); $i++)
{
echo "<option value='".$output[$i][studentID]."'>".$output[$i][studentID]."</option>";
}
}
问题是,对于仅有的两个甚至是必要的部分(因为有两个professorNames),因为它是这样循环的,所以它最终在下拉列表#2中是这样排序的:
1234567
2345678
3456789
4567890
1234123
2345765
3456999
4567000
我有限的编程经验使我无法理解如何解决这个看似简单的问题。
谢谢您的帮助。