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

基於Thinkphp的連表查詢和數據導出

編輯:PHP基礎知識
 

這今天實驗室的招新工作就要展開了,我們通過實驗室網站關聯到杭電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。

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