Thinkphp連表查詢及數(shù)據(jù)導出方法示例
本文實例講述了Thinkphp連表查詢及數(shù)據(jù)導出的方法。分享給大家供大家參考,具體如下:
這今天實驗室的招新工作就要展開了,我們通過實驗室網(wǎng)站關(guān)聯(lián)到杭電OJ,大一的新生將他們杭電的用戶名在實驗室網(wǎng)站提交,網(wǎng)站就會通過網(wǎng)絡(luò)爬蟲到杭電OJ上面進行數(shù)據(jù)抓取存到實驗室數(shù)據(jù)庫。
現(xiàn)在我要做的事就是把新生表和新生OJ數(shù)據(jù)表聯(lián)合導出。實驗室網(wǎng)站是用thinkphp框架開發(fā)的。所以根據(jù)以前的工作經(jīng)驗。問題很快就解決了。
現(xiàn)在跟大家分享一下。
thinkphp的擴張類都是放在ORG目錄下面,在通過import()函數(shù)調(diào)用連表查看可以用高級試圖模式,也可以不用。
//不用高級視圖模式。 //兩張表,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框架的配置中設(shè)置了數(shù)據(jù)表前綴的,一定要注意,在除了模型調(diào)用會自動添加前綴,其他的都要手動加上。
學過SQL的都知道,sql語句允許表的別名使用。
所以我們再table()聲明使用表的時候,我們可以進行別名
table('lab_userinfo userinfo,lab_oj_data data');
這個跟SQL 語句不一樣就在給表取別名的時候不用AS。
再就是數(shù)據(jù)導出問題,可參考前面的文章《PHP實現(xiàn)導出excel數(shù)據(jù)的類庫用法示例》
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《smarty模板入門基礎(chǔ)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。
相關(guān)文章
Laravel接收前端ajax傳來的數(shù)據(jù)的實例代碼
本篇文章主要介紹了Laravel接收前端ajax傳來的數(shù)據(jù)的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-07-07創(chuàng)建數(shù)據(jù)庫php代碼 用PHP寫出自己的BLOG系統(tǒng)
今天的任務(wù)是創(chuàng)建數(shù)據(jù)庫,因為對數(shù)據(jù)庫懂的很少,所以在數(shù)據(jù)庫表關(guān)系上還很差啊。2010-04-04PHP中把stdClass Object轉(zhuǎn)array的幾個方法
PHP和JS通訊通常都用json,但用 json 傳過來的數(shù)組并不是標準的array,而是 stdClass 類型。那么我們可以參考下面的幾個方法進行轉(zhuǎn)換。2014-05-05使用laravel和ECharts實現(xiàn)折線圖效果的例子
今天小編就為大家分享一篇使用laravel和ECharts實現(xiàn)折線圖效果的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10在win系統(tǒng)安裝配置 Memcached for PHP 5.3 圖文教程
這篇文章主要介紹了在win系統(tǒng)安裝配置 Memcached for PHP 5.3 圖文教程,需要的朋友可以參考下2015-03-03