SQL 根据 PHP MYSQLi-server 的不同表中的公共 id 号选择数据

问题描述 投票:0回答:1

您好,第一次在这里发帖。我试图在家长登录时显示特定学生的出勤列表。我有学生和家长的数据库表,通过学生 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'];

如果有什么方法可以让我查看特定家长的其余学生数据,而不是只看到与第一个注册家长相关的注册学生,那就太棒了!

如果您需要我提供更多数据,请告诉我,我很感谢我能得到的任何帮助,因为我一直坚持这个问题。谢谢!

php mysqli phpmyadmin xampp
1个回答
0
投票

我认为这个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'];

这会将查询限制为仅限登录家长的学生。

© www.soinside.com 2019 - 2024. All rights reserved.