Thinkphp连表查询及数据导出方法示例

本文实例讲述了Thinkphp连表查询及数据导出的方法。分享给大家供大家参考,具体如下:

这今天实验室的招新工作就要展开了,我们通过实验室网站关联到杭电OJ,大一的新生将他们杭电的用户名在实验室网站提交,网站就会通过网络爬虫到杭电OJ上面进行数据抓取存到实验室数据库。

现在我要做的事就是把新生表和新生OJ数据表联合导出。实验室网站是用thinkphp框架开发的。所以根据以前的工作经验。问题很快就解决了。

现在跟大家分享一下。

thinkphp的扩张类都是放在ORG目录下面,在通过import()函数调用连表查看可以用高级试图模式,也可以不用。

//不用高级视图模式。 //两张表,userinfo和oj_data //导出学生信息 $user = $userinfo->table('lab_userinfo,lab_oj_data') ->field( 'lab_userinfo.userid, lab_userinfo.truename, lab_userinfo.year, lab_userinfo.sex, lab_userinfo.subject, lab_userinfo.email, lab_userinfo.date, lab_oj_data.username as username, lab_oj_data.solved as solved, lab_oj_data.Submit as Submit, lab_oj_data.AC as AC') ->where('lab_userinfo.userid=lab_oj_data.userid and pass=0')->order('lab_oj_data.solved desc') ->select();

需要注意的是。在thinkphp框架的配置中设置了数据表前缀的,一定要注意,在除了模型调用会自动添加前缀,其他的都要手动加上。

学过SQL的都知道,sql语句允许表的别名使用。

所以我们再table()声明使用表的时候,我们可以进行别名

table('lab_userinfo userinfo,lab_oj_data data');

这个跟SQL 语句不一样就在给表取别名的时候不用AS。

再就是数据导出问题,可参考前面的文章《PHP实现导出excel数据的类库用法示例》

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

时间: 2024-09-30 17:39:56

Thinkphp连表查询及数据导出方法示例的相关文章

Thinkphp连表查询及数据导出方法示例_php实例

本文实例讲述了Thinkphp连表查询及数据导出的方法.分享给大家供大家参考,具体如下: 这今天实验室的招新工作就要展开了,我们通过实验室网站关联到杭电OJ,大一的新生将他们杭电的用户名在实验室网站提交,网站就会通过网络爬虫到杭电OJ上面进行数据抓取存到实验室数据库. 现在我要做的事就是把新生表和新生OJ数据表联合导出.实验室网站是用thinkphp框架开发的.所以根据以前的工作经验.问题很快就解决了. 现在跟大家分享一下. thinkphp的扩张类都是放在ORG目录下面,在通过import()

thinkphp多表查询两表有重复相同字段的完美解决方法_php技巧

框架:thinkphp 版本:3.2.3 内容:查询语句 解决问题:重复字段问题 $Data = M('a')->where($where) ->Field('a.name as aname,b.name as uname,a.*') ->join('b on b.jb_id=a.id') ->order('a.id desc') ->select(); 解释:a.* 查询a表所有的字段 a.name as aname 转换a表中的name重复字段为aname 以上就是小编为

thinkPHP多表查询及分页功能实现方法示例

本文实例讲述了thinkPHP多表查询及分页功能实现方法.分享给大家供大家参考,具体如下: 项目业务逻辑为:教师上传试卷,设置答题卡,发布答题卡给相关的班级或群组,只有试卷关联的答题卡发布后,该试卷才能在系统试卷中搜索到,同时其他的老师也可以收藏.在前端的收藏模块中,有个业务是给个input框以提供搜索功能给用户,但是在事先设计的搜索表中,只有一处试卷ID是和试卷表关联的,如果用户搜索试卷题目那岂不要两表查询了,一开始我想到的方法是在收藏表中多加个字段,也就是把试卷题目的字段添加到收藏表中,业务

Excel表格中汇总多个数据表中的数据的方法

  Excel表格中汇总多个数据表中的数据的方法           1.打开需要处理的工作簿,在这个工作簿中,"11月采购表"和"12月采购表"工作表包含需要合并的数据,如图1所示."合计"工作表用于放置进行合并计算后的数据,其结构如图2所示. 图1 需要合并的两张工作表 图2 "合计"工作表的结构 2.在"合计"工作表中单击选择放置合并计算结果的单元格区域中的第一个单元格,然后在功能区"数据&

Codeigniter检测表单post数据的方法_php实例

本文实例讲述了Codeigniter检测表单post数据的方法.分享给大家供大家参考.具体如下: $name = $this->input->post(' name' ) ; $email = $this- >input->post( ' email' ) ; $subj ect = $this->input->post( ' subject' ) ; $message = $this->input->post( ' message' ) ; if(empt

thinkphp多表查询

在学习thinkphp 的过程中,需要对多表进行操作,但是在实际过程中,总是遇到各种问题,所以写下这篇博文,作为自己的学习历程   在操作过程中,两表查询都没有问题,但是三表查询就开始出现问题   有以下三张表,分表为pl表(uid,content),user表(id,username),lyb表(uid,title)   多表查询操作有以下几种方法:   ㈠视图模型(推荐)   定义视图模型,只需要继承Think\Model\ViewModel,然后设置viewFields属性即可   复制代

MySQL导出备份(数据导出)方法详解

表数据导出到一个文本文件最简单的方法是使用SELECT... INTO OUTFILE语句的查询结果直接导出到一个文件在服务器主机上. 导出数据的SELECT...INTO OUTFILE声明: 这句话的语法结合了常规的SELECT INTO OUTFILE文件名的末尾.默认的输出格式是相同的LOAD DATA,所以下面的语句导出tutorials_tbl的表制表符分隔的,换行结尾的文件到/tmp/tutorials.txt:  代码如下 复制代码 mysql> SELECT * FROM tu

多表查询-关于数据表之间的关系

问题描述 关于数据表之间的关系 对于多表查询的情况,数据库里定义了关系,在应用程序写sql语句时还需要描述表之间的关系吗?两者是否可以只选其一? 解决方案 多表关联一般通过inner join.left join.cross join.自连接 等等几种连接方式进行关联. 具体的你看一下这个教程就知道了.http://www.w3school.com.cn/sql/sql_join.asp 解决方案二: 数据库定义是数据库定义,写SQL的时候关联关系 还是需要在SQL中体现出来的http://bl

Web页面数据导出方法概述之导出excel

前言:随着BS体系结构的广泛使用,相对应的数据保存技术也要改进,对应Web页面,也就是我们通常认识到的HTML文件,由标示关键字与数据混合组成的文件.Web页面数据导出简单地说,就是分离数据与格式,同时保存数据为另外一种格式.正文:分析HTTP Response等文件头信息,对如何处理Web页面非常有用,下面简单地介绍几种常用的方法,算是在技术上学习,非理论上学习.下面的代码分析如何通过修改http头文件,产生excel的文件供用户下载,以达到数据导出的功能.这种非实际在服务器端生成文件的优点就