编辑:添加了第一个SQL查询。SQL查询ORDER BY在PHP中循环
我网站的一部分有两个下拉菜单。两者中的所有选项都使用SQL查询进行填充。下拉#1是一个类部分的列表(例如A1)。一旦教授选择了一个部分,Dropdown#2就会填入学生ID(例如1234567)。
学生信息位于表1中。其中包含'professorName'列。为了将学生与班级相关联,我需要将'professorName'列与表2中找到的相同列相匹配,因为班级部分仅在表2中找到。
直到此处,一切都很好,因为在我的查询结束时,我把ORDER BY学生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
我在编程方面的有限经验使我无法理解如何解决这个看似简单的问题。
谢谢你的帮助。
是StudentID字段是数据库中的INT字段吗? – 2013-03-26 14:46:53
也许不是,如果它是一个普通的学生ID。在我工作和去过的大多数大学中,他们倾向于包含连字符。 – 2013-03-26 14:47:59
@exampleusername我不熟悉术语INT字段,对不起。 – BillyCode 2013-03-26 14:51:49