繁体   English   中英

如何显示第一个表中的记录并匹配第二个表中的记录?

[英]How to display the records from the first table and match the records from the second table?

我有两个表,一个用于学生详细信息,第二个用于stud_marks。

我在学生表中插入个人信息,例如

  s_id  | name   | mobile     | email  
    1   | asdff  |1234567831  |asd@gmail.com
    2   | kjhgg  |1231231231  |mnhg@gmail.com
    <!--many more-->

我在插入学生标记,例如

m_id    |sub_name    |mark       | stu_id    |date_of_added
1       |asdasd      |30         | 1       |2019-06-16 17:31:07
2       |oiuytr      |40         | 1       |2019-06-16 17:31:07
3       |okjhyt      |50         | 2       |2019-06-20 20:12:09
4       |ppoiuj      |60         | 1       |2019-06-22 11:41:34
<!--many more--> 

现在,我必须使用哪些查询并显示单个记录。 就像我必须显示学生1记录。 所以我的预期输出是

 s_id  | name   | mobile     | email  
   1   | asdff  |1234567831  |asd@gmail.com


m_id    |sub_name    |mark       | stu_id    |date_of_added
1       |asdasd      |30         | 1       |2019-06-16 17:31:07
2       |oiuytr      |40         | 1       |2019-06-16 17:31:07
4       |ppoiuj      |60         | 1       |2019-06-22 11:41:34

我在编辑页面上,必须在其中显示类似

name:-asdff
mobile:-1234567831
Email:-asd@gmail.com

<!--subject details-->
Sub_name Mark
asdasd   30         
oiuytr   40
ppoiuj   60      

我可以在HTML页面上显示记录。 显示个人信息。 我可以用于显示主题详细信息。

我正在使用CodeIgniter。

我在下面的查询中尝试过,但得到3条记录。

SELECT * FROM `student` LEFT JOIN stud_marks ON student.s_id=stud_marks.stu_id WHERE student.s_id=1

查询的输出是

1 asdff 1234567831 asd@gmail.com 1 asdasd 30 1 2019-06-16 17:31:07

1 asdff 1234567831 asd@gmail.com 2 asdasd 40 1 2019-06-16 17:31:07

1 asdff 1234567831 asd@gmail.com 4 asdasd 60 1 2019-06-22 11:41:34

您能帮我解决这个问题吗?

尝试这个 :

//assuming your database connection will be in $con
$sql="SELECT * FROM `student` LEFT JOIN stud_marks ON   student.s_id=stud_marks.stu_id WHERE student.s_id=1";
 $result=mysqli_query($con,$sql);
 while($row = $result->fetch_assoc()){
 $name=$row['name'];
 $mobile=$row['mobile'];
 $email=$row['email'];
 $marks[]=$row['mark'];
 $sub_names[]=$row['sub_name'];
 }
 $records=count($sub_names);
 echo 'Name :'.$name; echo '<br>';
 echo 'Mobile :'.$mobile; echo '<br>';
 echo 'Email :'.$email; echo '<br>';
 echo '------'; echo '<br>';
 echo 'Subject    Marks'; echo '<br>';
 for ($x = 0; $x <= $records; $x++) {
 echo "$sub_names[$x]  $marks[$x]   <br>";
 }
 echo '------'; echo '<br>';

提取数据的CodeIgniter示例:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result_array() as $row)
{
        $name=$row['name'];
        $mobile=$row['mobile'];
        $email=$row['email'];
        $marks[]=$row['marks'];
        $sub_names[]=$row['sub_names'];
}

为了显示结果,在我之前的示例中,从$records=count($sub_names)开始的代码没有变化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM