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