在实际的项目开发过程中,一个项目经常需要多个数据表来存储信息,并且这些表之间通过主键彼此相互联系,那么本篇文章将介绍如何实现多个数据表之前的查询。
那么我们在之前的一篇文章《使用mysqli扩展技术查看服务器连接错误报告的方法》中,我们介绍了mysqli扩展技术来查看服务器连接错误报告的方法,今天我们将给大家介绍使用mysqli扩展技术实现多个表之间的查询!
技术要点
利用mysqli技术实现多表查询,关键是如何实现多表之间通过主键进行连接。下面是本实例实现多表查询的代码:
$sql = "select * from student,score where student.id=score.id"; $result = mysqli_query($link, $sql);
实现多表之间的查询应在from关键字后列出所有的表名,并且表名之间用逗号进行分割。同时应在where关键字中指明多表之间的连接条件,例如本例中的student.id=score.id,表明学生表和成绩表之间通过学生表的id字段和成绩表的sid字段进行连接。
实现过程
(1)建立php文件,实现与MySQL数据库之间的连接。代码如下:
$link = mysqli_connect("localhost", "root", "root"); $conn = mysqli_select_db($link, "php_cn"); $sql = "select * from student,score where student.id=score.id"; $result = mysqli_query($link, $sql); $res = mysqli_fetch_array($result, MYSQLI_ASSOC);
(2)实现多表之间的查询,如果学生表和成绩表中有满足条件的记录,则显示这些记录,否则提示没有相关信息。代码如下:
<?php header("Content-Type:text/html; charset=utf-8"); $link = mysqli_connect("localhost", "root", "root"); $conn = mysqli_select_db($link, "php_cn"); $sql = "select * from student,score where student.id=score.id"; $result = mysqli_query($link, $sql); $res = mysqli_fetch_array($result, MYSQLI_ASSOC); if(!$res) { echo "没有找到你要的信息"; }else{ ?> <table width="600" height="50" border="0" align="center" cellspacing="1" cellpadding="0"> <tr> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'>序列</p> </td> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'>名字</p> </td> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'>语文成绩</p> </td> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'>数学成绩</p> </td> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'>外语成绩</p> </td> </tr> <?php do{ ?> <tr> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'><?php echo $res['student_id'];?></p> </td> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'><?php echo $res['name'];?></p> </td> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'><?php echo $res['chinese'];?></p> </td> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'><?php echo $res['mathematics'];?></p> </td> <td width="156" height="25" bgcolor="#A2D4F4"> <p align='center'><?php echo $res['english'];?></p> </td> </tr> <?php }while($res = mysqli_fetch_array($result, MYSQLI_ASSOC)); } ?> </table>
最后输出的得到的结果如下:
注意:
上面的结果图中的“序列”和“名字”字段来自 student 数据表,而其他的字段来自 score 数据表。
关于mysqli扩展技术实现多表查询我们就介绍到这里了,小伙伴们可以再自己的本地试试,下一篇我们继续讲解mysqli扩展技术,具体请阅读《通过mysqli扩展技术实现内存回收》!
【相关教程推荐】
1. 相关专题推荐:《php操作mysql数据库》
2.【MYSQL在线免费视频教程】
3. 相关视频课程推荐: 《初级MySQLi 扩展库视频教程》
以上就是使用mysqli扩展技术实现多个数据表查询的详细内容,更多请关注php中文网其它相关文章!
……