我正在建立一个关于学生出勤管理的项目。我被困在一个功能上。在老师要标记上课的时间时,他/她必须填写有关班级详细信息和主题详细信息的表格。我只想向老师展示那些班级,这些班级的科目分配给了老师。类在选择框中列出。当一个班级的多个科目分配给一位老师时,就会出现问题。它在选择框中多次显示班级。我只想向每个班级展示一次。
这是我的选择框代码。
<div class="form-group">
<label for="class_id" class="control-label col-sm-2">Select Class Id :</label>
<div class="col-xs-10">
<select class="form-control" name="class_id" id="class_id">
<option selected="selected" value="">Select Class Id</option>
<?php
$q="select * from subjects where teacher_id='$_SESSION[teacher]'";
$res=mysqli_query($con,$q);
while($row=mysqli_fetch_array($res)){
echo "<option class='form-control'>".$row['class_id']." </option>";
}
?>
</select>
</div>
</div>
答案 0 :(得分:1)
在SQL查询中使用与众不同,以确保主题名称在选择标记中仅出现一次。
例如-
SELECT DISTINCT class_id FROM subjects WHERE teacher_id='$_SESSION[teacher];
答案 1 :(得分:1)
这部分代码可能有问题。它可能返回重复的值。
$q="select * from subjects where teacher_id='$_SESSION[teacher]'";
您可以更改它以返回唯一的 class_id ,因为您仅使用 class_id 。
$q="select DISTINCT `class_id` from subjects where teacher_id='$_SESSION[teacher]'";
您必须相应地更改while循环。我不确定PHP。但您可能只在
中使用 $ row 而不是 $ row ['class_id']
while($row=mysqli_fetch_array($res)){
echo "<option class='form-control'>".$row['class_id']." </option>";
}
干杯。