您好,第一次在这里发帖。我试图在家长登录时显示特定学生的出勤列表。我有学生和家长的数据库表,通过学生 ID 连接(我在家长注册时要求提供学生 ID)。例如:
学生 | 家长 |
---|---|
希德 | pid |
学生姓名 | 家长姓名 |
学生证 | 学生证 |
我有一份家长登记表,并且能够成功注册一位家长,并调出/显示该特定学生和家长的学生姓名和出勤名单。但是,每当我注册新家长并登录查看该家长和学生的数据时,我只能更改家长姓名显示,但学生姓名和学生的出勤详细信息与第一次注册时保持相同的学生。下面是代码:
//for parent name display
$q = "SELECT * FROM parent WHERE id = ".$_SESSION['id']."";
$r = $conn->query($q);
$num = $r->num_rows;
$rws = $r->fetch_assoc();
$full = $rws['pfname']." ".$rws['plname'];
Parent Name: <?php echo $full;?>
//for student name display
$qu = "SELECT student.* FROM student INNER JOIN parent ON (student.idno = parent.sidno) where parent.sidno = student.idno";
$r1 = $conn->query($qu);
$num = $r1->num_rows;
$rws1 = $r1->fetch_assoc();
$full1 = $rws1['sfname']." ".$rws1['slname'];
Student Name: <?php echo $full1;?>
//view by date (parent can select the date to view student attendance in a table)
if(isset($_POST['viewAttbydate'])){
$que = "SELECT student.* FROM student INNER JOIN parent ON (student.idno = parent.sidno) where parent.sidno = student.idno";
$r0 = $conn->query($que);
$num = $r0->num_rows;
$rws0 = $r0->fetch_assoc();
$admidno = $rws0['idno'];
如果有什么方法可以让我查看特定家长的其余学生数据,而不是只看到与第一个注册家长相关的注册学生,那就太棒了!
如果您需要我提供更多数据,请告诉我,我很感谢我能得到的任何帮助,因为我一直坚持这个问题。谢谢!
我认为这个SQL语句中的
WHERE
子句是错误的:
$que = "SELECT student.* FROM student INNER JOIN parent ON (student.idno = parent.sidno) where parent.sidno = student.idno";
我想你的意思是:
$que = "SELECT student.* FROM student INNER JOIN parent ON (student.idno = parent.sidno) WHERE parent.pid = ".$_SESSION['id'];
这会将查询限制为仅限登录家长的学生。