找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 655|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2560

主题

2560

帖子

7622

积分

论坛元老

Rank: 8Rank: 8

积分
7622
跳转到指定楼层
楼主
发表于 2018-2-14 05:31:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了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程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • thinkphp3查询mssql数据库乱码解决方法分享
  • 浅析ThinkPHP中execute和query方法的区别
  • ThinkPHP之getField详解
  • Thinkphp使用mongodb数据库实现多条件查询方法
  • ThinkPHP查询语句与关联查询用法实例
  • thinkphp数据查询和遍历数组实例
  • ThinkPHP采用原生query实现关联查询left join实例
  • thinkphp中多表查询中防止数据重复的sql语句(必看)
  • thinkPHP实现多字段模糊匹配查询的方法
  • thinkPHP简单实现多个子查询语句的方法
  • thinkPHP数据查询常用方法总结【select,find,getField,query】
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端