① tp框架怎麼實現二叉樹查詢 如圖,查詢資料庫中小明下面的所有人。到底下面多少人,不清楚。 代碼如何實現
搞個無限級分類,數據結構如下
idparent_idname
10 小明
21小紅
31小剛
42小紫
.....以此類推
$m=M('Table');
$data=$m->order('parent_id')->select();
$data=$this->tree($data,0);
//無限級分類
//更過mysql查詢http://it-school.cn/mysql/mysql-tutorial.html
static$treeList=array();
staticpublicfunctiontree(&$data,$parentId,$count=1)
{
foreach($dataas$key=>$value){
if($value['parent_id']==$parentId){
$value['Count']=$count;
self::$treeList[]=$value;
unset($data[$key]);
self::tree($data,$value['id'],$count+1);
}
}
returnself::$treeList;
}
② php thinkphp3。2怎麼獲取某資料庫欄位的內容
需要准備的材料分別是:電腦、php編輯器、瀏覽器。
1、首先,打開php編輯器,新建php文件,例如:index.php,以獲取user表name欄位為例。
③ tp5如何跨資料庫查詢
如果是mysql裡面兩個不同的資料庫,應該是可以直接使用 [資料庫名稱].[表名]來關聯的。TP指定的資料庫,是因為他要緩存這個資料庫的表欄位等。試試看行不行,測試通過: SELECT a.*,b.* FROM table1 a LEFT JOIN db2.table2 b ON a.id=b.id
④ thinkphp 資料庫查詢怎麼查
thinkphp如何查詢資料庫?
資料庫查詢
ThinkPHP內置了非常靈活的查詢方法,可以快速的進行數據查詢操作。
查詢條件可以用於CURD等任何操作,作為where方法的參數傳入即可。
ThinkPHP可以支持直接使用字元串作為查詢條件,但是大多數情況推薦使用索引數組或者對象來作為查詢條件,因為會更加安全。
查詢方式
一、使用字元串作為查詢條件
這是最傳統的方式,但是安全性不高,例如:
1
2
$User = M("User"); // 實例化User對象
$User->where('type=1 AND status=1')->select();
最後生成的SQL語句是
1
SELECT * FROM think_user WHERE type=1 AND status=1
二、使用數組作為查詢條件
1
2
3
4
5
$User = M("User"); // 實例化User對象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
// 把查詢條件傳入查詢方法
$User->where($condition)->select();
最後生成的SQL語句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1
如果進行多欄位查詢,那麼欄位之間的默認邏輯關系是 邏輯與 AND,但是用下面的規則可以更改默認的邏輯判斷,通過使用 _logic 定義查詢邏輯:
1
2
3
4
5
6
$User = M("User"); // 實例化User對象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定義查詢邏輯
// 把查詢條件傳入查詢方法
$User->where($condition)->select();
最後生成的SQL語句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'
三、使用對象方式來查詢 (這里以stdClass內置對象為例)
1
2
3
4
5
6
$User = M("User"); // 實例化User對象
// 定義查詢條件
$condition = new stdClass();
$condition->name = 'thinkphp';
$condition->status= 1;
$User->where($condition)->select();
最後生成的SQL語句和上面一樣
1
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
使用對象方式查詢和使用數組查詢的效果是相同的,並且是可以互換的,大多數情況下,我們建議採用數組方式更加高效,後面我們會以數組方式為例來講解具體的查詢語言用法。
表達式查詢
上面的查詢條件僅僅是一個簡單的相等判斷,可以使用查詢表達式支持更多的SQL查詢語法,並且可以用於數組或者對象方式的查詢(下面僅以數組方式為例說明),查詢表達式的使用格式:
1
$map['欄位名'] = array('表達式','查詢條件');
表達式不分大小寫,支持的查詢表達式有下面幾種,分別表示的含義是:
1
2
3
4
$map['id'] = array('eq',100); id = 100;
$map['id'] = array('egt',100);id >= 100
$map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查詢
$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')
本文來自ThinkPHP框架技術文章欄目:http://www.php.cn/phpkj/thinkphp/
以上就是thinkphp如何查詢資料庫的詳細內容,更多請關注php中文網其它相關文章!
⑤ HTML怎麼通過TP顯示資料庫內容
HTML模板吧。TP訪問的是控制器,控制器裡面M函數或D函數查詢資料庫,然後assign到模板,模板只負責顯示這個分配過來的變數。
⑥ ThinkPHP 查詢不到資料庫裡面的內容是怎麼回事, 我的配置文件是( 'DB_TYPE'=>'
埠沒設置把
⑦ ThinkPHP中查詢資料庫where()中的條件必須包含主鍵值嗎
不用的哈,用什麼PHP框架,就要多看這個框架的手冊。
http://document.thinkphp.cn/manual_3_2.html#where,
就如此題來說,你傳遞過來的id值,就是表的主鍵。
pid一般是為父鍵的意思,$catemodel->where('pid=%d',$_GET['id'])->select();
查詢的是這個id所對應子集的。
樓上所說這種,有點曲解樓主的意思。樓主的意思,估計就是子集沒數據的緣故。
⑧ thinkphp008. 資料庫的數據查詢
008. 資料庫的數據查詢
本節課我們來了解一下資料庫的數據查詢方式,單數據、數據集和其它查詢。
一.單數據查詢
1. Db::table()中table必須指定完整數據表(包括前綴);
2. 如果希望只查詢一條數據,可以使用find()方法,需指定where條件;
Db::table('tp_user')->where('id', 27)->find()
3. Db::getLastSql()方法,可以得到最近一條SQL查詢的原生語句;
SELECT * FROM `tp_user` LIMIT 1
4. 沒有查詢到任何值,則返回null;
5. 使用findOrFail()方法同樣可以查詢一條數據,在沒有數據時拋出一個異常;
Db::table('tp_user')->where('id', 1)->findOrFail()
6. 使用findOrEmpty()方法也可以查詢一條數據,但在沒有數據時返回一個空數組;
7. Db::table('tp_user')->where('id', 1)->findOrEmpty();
二.數據集查詢
1. 想要獲取多列數據,可以使用select()方法;
Db::table('tp_user')->select(); SELECT * FROM `tp_user`
2. 多列數據在查詢不到任何數據時返回空數組,使用selectOrFail()拋出異常; Db::table('tp_user')->where('id', 1)->selectOrFail();
3. 在select()方法後再使用toArray()方法,可以將數據集對象轉化為數組;
4. 當在資料庫配置文件中設置了前綴,那麼我們可以使用name()方法忽略前綴; Db::name('user')->select();
三.其它查詢
1. 通過value()方法,可以查詢指定欄位的值(單個),沒有數據返回null;
Db::name('user')->where('id', 27)->value('username');
$user = Db::table('tp_user')->select()->toArray(); mp($user);
2. 通過colunm()方法,可以查詢指定列的值(多個),沒有數據返回空數組; Db::name('user')->column('username');
3. 可以指定id作為列值的索引;
4. 如果處理的數據量巨大,成百上千那種,一次性讀取有可能會導致內存開銷過大;
5. 為了避免內存處理太多數據出錯,可以使用chunk()方法分批處理數據;
6. 比如,每次只處理100條,處理完畢後,再讀取100條繼續處理;
7. 可以利用游標查詢功能,可以大幅度減少海量數據的內存開銷,它利用了PHP生成器特性。每次查詢只讀一行,然後再讀取時,自動定位到下一行繼續讀取;
Db::name('user')->column('username', 'id');
Db::table('tp_user')->chunk(3, function($users) { foreach ($users as $user) {
mp($user);
}
echo 1; });
$cursor = Db::table('tp_user')->cursor(); foreach($cursor as $user){
mp($user);
}
⑨ tp中資料庫查詢的問題
你可以通過添加購物車把商品good_id傳遞過去,通過good_id關聯到商品表裡面查詢信息,在通過
$this -> assign();
方法吧數據發送到前台
⑩ php中如何用tp實現去獲取資料庫的內容,然後顯示到前端的頁面
先建立數據表並插入數據
這里假設已經存在user表,並且有一條數據id:1,name:admin
那麼讀取這個數回據的過程是
$data=M('User')->select();
$this->assign('user',$data);
模板中答的調取代碼是
<volistname="user"id="v">
用戶名:{$v.name}ID:{$v.id}
</volist>