Php 两个表的内部联接[更新]
tbl教师Php 两个表的内部联接[更新],php,mysql,mysqli,inner-join,Php,Mysql,Mysqli,Inner Join,tbl教师 lrn fname lname email image schedule tbl用户 lrn fname lname email image account-type $id=$\会话['id'] $get_record_sched=mysqli_query($db,“在teacher.lrn=users.lrn其中teacher.lrn='$id''上从教师内部加入用户选择日程安排) 我想根据登录帐户的id响应确切的计划。但通过这个查询,在条件错误的地方没有输出…。他们没有任
lrn
fname
lname
email
image
schedule
tbl用户
lrn
fname
lname
email
image
account-type
$id=$\会话['id']
$get_record_sched=mysqli_query($db,“在teacher.lrn=users.lrn其中teacher.lrn='$id''上从教师内部加入用户选择日程安排)
我想根据登录帐户的id响应确切的计划。但通过这个查询,在条件错误的地方没有输出…。他们没有任何参数来验证条件。所以像这样更改
"SELECT schedule FROM teacher INNER JOIN users ON teacher.id = users.id WHERE 1 "
或
使用与join相同的where条件
"SELECT schedule FROM teacher INNER JOIN users ON teacher.id = users.id AND teacher.schedule = users.id WHERE 1 "
或
如果您在会话中记录了used id,如
$id=$_SESSION['user_id'];
"SELECT schedule FROM teacher INNER JOIN users ON teacher.id = users.id WHERE teacher.schedule='$id' "
您说您从会话中获得了
$id
。假设列lrn
是ID,则
Select t.schedule
From teacher t
Where t.lrn = $id
无需将表与用户表联接
请注意,建议使用参数绑定
$statement = $connection->prepare("Select t.schedule From teacher t Where t.lrn = ?");
$statement->bind_param("s", $id);
mysqli\u error()
需要连接作为参数。您也从这个查询中获取结果吗?是的,先生,我获取了…我只能获取特定的时间表。您的两个表似乎都不包含ID列。另外,如果教师表中已经存在SCHEDULE列,那么为什么还要加入呢?@anne you的可能重复项在WHERE部分重复加入条件,这是不必要的。相反,您可能希望将用户提供的id以参数的形式放置在那里:WHERE users.lrn=$idFromUseryou是对的。如果我格式化了我的代码,他们的回答是非常日志。现在不必了最后一个代码不工作,我有$id=$\u SESSION['id'];我尝试了你所说的,但仍然没有显示确切的日程安排你在$id=$\u session['id']
session\u start()之前调用了session\u start()
吗;如果(isset($\u SESSION[“id”]){$id=$\u SESSION[“id”];确定做一件事echo“从教师内部选择计划在teacher.id=users.id上加入用户,其中teacher.schedule='$id'”;退出();
使用phpmyadmin将粘贴复制到。并告诉您是否有任何错误。此答案将其分解为要点!使用更详细的准备语句,这通常应该是常见的做法。