本文实例讲述了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程序设计有所帮助。
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。