好的,伙计们,我需要一点帮助,重新制作这个格式正确。
我有这样的代码:(这是访问数据库中名为"students"的表)
<?php
require_once('connection.php');
$id = $_SESSION['SESS_MEMBER_ID'];
$result3 = mysql_query("SET NAMES UTF8;");
$result3 = mysql_query("SELECT * FROM students where mem_id='$id'");
while($row3 = mysql_fetch_array($result3))
{
$fname = $row3['fname'];
$country = $row3['country'];
$class = $row3['class'];
$headteacher = $row3['headteacher'];
$attendance = $row3['attendance'];
$homework = $row3['homework'];
$messagestudent = $row3['messagestudent'];
}
?>
<?php
if($class=='K1')
echo "teacher 1";
else if($class=='K2')
echo "teacher 2";
else if($class=='K3')
echo "teacher 3";
?>
在另一个表中,我有老师的名字和我需要做的事情,我找不到正确的方法,就是在查询确认"学生"表列"class"上的K1, K2或K3数据后,从表中调用老师的名字"teachers"。
基本上我需要的是改变echo部分的内容,从代码中需要的静态数据切换到包含在另一个表中的数据,例如。两个表都有一个列称为"类",所以如果类列的学生说"K1"我想要这个然后去检查"教师"表的列"类",并选择一个匹配"K1",并显示在结果回声,我确信这是可能的,但不是与我目前的技能水平。
学生表的结构为:
mem_id, username, password, fname, country, class, attendance, homework, messagestudent
teacher的表结构为:
mem_id, class, name, comment
希望你们能给我一些启示!
提前感谢。
p。我知道查询正在使用已弃用的mysql_
,但是当我试图按照指南将其更改为mysqli_
时,它从未工作过。
如果我理解的话,您可以通过这个查询(不使用JOIN或If语句)获得所需的数据:
SELECT students.*,teachers.name FROM students,teachers WHERE students.id='$id' AND students.class = teachers.class
它根据学生班级返回同一行的教师姓名。
可以使用左连接。尝试使用以下查询:
SELECT * FROM students as st
LEFT JOIN teachers AS ts
on st.class=ts.class
WHERE st.mem_id = '$id'
你不需要使用if-else语句。
根据你的脚本,它应该像这样工作:
<?php
require_once('connection.php');
$id = $_SESSION['SESS_MEMBER_ID'];
$result3 = mysql_query("SET NAMES UTF8;");
$result3 = mysql_query("SELECT st.*, ts.name AS teacher_name FROM students as st LEFT JOIN teachers AS ts on st.class=ts.class WHERE st.mem_id = ".$id);
while($row3 = mysql_fetch_array($result3))
{
$fname = $row3['fname'];
$country = $row3['country'];
$class = $row3['class'];
$headteacher = $row3['headteacher'];
$attendance = $row3['attendance'];
$homework = $row3['homework'];
$messagestudent = $row3['messagestudent'];
$teachername = $row3['teacher_name'];
}
echo $class. ' - '. $teachername;
?>