程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Thinkphp連表查詢及數據導出方法示例

Thinkphp連表查詢及數據導出方法示例

編輯:PHP綜合

本文實例講述了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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved