Php 使用“从同一数据库的两个表中读取数据”;如果-否则“;

Php 使用“从同一数据库的两个表中读取数据”;如果-否则“;,php,mysql,Php,Mysql,好了,伙计们,我需要一点帮助,重新制作这个以正确格式化ir 我有以下代码: (这是访问数据库中名为“students”的表。) 教师的表格结构为: mem_id, class, name, comment 希望你们能给我点启示 提前谢谢 另外,我知道查询使用的是不推荐使用的mysql\u,但当我按照指南尝试将其更改为mysqli\u时,它从未起作用。您可以使用左连接进行此操作。尝试使用以下查询: SELECT * FROM students as st LEFT JOIN teachers

好了,伙计们,我需要一点帮助,重新制作这个以正确格式化ir

我有以下代码: (这是访问数据库中名为“students”的表。)

教师的表格结构为:

mem_id, class, name, comment
希望你们能给我点启示

提前谢谢


另外,我知道查询使用的是不推荐使用的
mysql\u
,但当我按照指南尝试将其更改为
mysqli\u
时,它从未起作用。

您可以使用左连接进行此操作。尝试使用以下查询:

SELECT * FROM students as st 
LEFT JOIN teachers AS ts 
on st.class=ts.class
WHERE st.mem_id = '$id'
您不需要为此使用if-else语句。它还将与mysqli一起工作

根据您的脚本,它的工作方式应该是:

<?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; 

?>

如果我理解,您可以通过此查询获得所需数据(无JOIN或If语句):


它根据同一行的学生班级返回教师姓名。

听起来像你真正想要的是
选择学生。*,教师。*其中mem_id='$id'和teacher.class=student.class left在student.mem_id=teacher.mem_id
我明白了,这是唯一正确的查询吗?但是你如何把它称为文档的主体呢?我指的是代码中的if-else部分,在这个新的查询中,正确的语句或调用过程是什么?谢谢你的回答!你能用源脚本编一个例子吗?o(╥﹏╥)o我对你们描述的两种方式都感兴趣。和nishant一样,我知道这只是一个查询,但是你如何将它调用到文档的正文中?我是指代码中的if-else部分,在这个新的查询中,正确的语句或调用过程是什么?谢谢你的回答!你能用源代码编写一个示例吗?o(╥﹏╥)o
SELECT * FROM students as st 
LEFT JOIN teachers AS ts 
on st.class=ts.class
WHERE st.mem_id = '$id'
<?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; 

?>
SELECT students.*,teachers.name FROM students,teachers WHERE students.id='$id' AND students.class = teachers.class