使用“if - else”从同一数据库的两个表中读取数据


Reading data from two tables on a same database, using "if - else"

好的,伙计们,我需要一点帮助,重新制作这个格式正确。

我有这样的代码:(这是访问数据库中名为"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; 
?>