久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

TP5.1 多表關(guān)聯(lián)查詢中實(shí)現(xiàn)搜索功能

瀏覽:129日期:2022-06-04 17:46:06

問題描述

多表關(guān)聯(lián)搜索功能的問題:

代碼如下:

// 實(shí)現(xiàn)搜索功能$productName = Request::param('productName');$storeName = Request::param('storeName');if ( !empty($productName) && empty($storeName) ) { $map[] = ['p.name', 'like', '%' . $productName . '%'];} else if ( !empty($storeName) && empty($productName) ) { $map[] = ['s.name', 'like', '%' . $storeName . '%'];} else if ( !empty($productName) && !empty($storeName) ) { $map[] = ['p.name', 'like', '%' . $productName . '%']; $map[] = ['s.name', 'like', '%' . $storeName . '%'];}// 定義分頁參數(shù)$limit = isset($_GET['limit']) ? $_GET['limit'] : 10;$page = isset($_GET['page']) ? $_GET['page'] : 1;$stockList = StockModel::where($map) -> alias('sk') -> leftJoin('product p', 'sk.product_id = p.id') -> join('store s', 'sk.store_id = s.id') -> where('sk.status', 1) -> order('sk.product_id', 'desc') -> field('sk.*, p.name as product_name, s.name as store_name') -> page($page, $limit) -> select();

1、以上代碼中,想實(shí)現(xiàn)的搜索功能,但是$map條件中,因?yàn)樗阉鞯氖峭ㄟ^join加入的附表的字段,所以用附表的別名.字段的形式,如:p.name, s.name,這樣搜索有問題,生成的SQL語句中,把兩個(gè)附表都過濾了,如下:

TP5.1 多表關(guān)聯(lián)查詢中實(shí)現(xiàn)搜索功能

TP5.1 多表關(guān)聯(lián)查詢中實(shí)現(xiàn)搜索功能

這樣的結(jié)果附加表沒了,所以字段加了別名就不對了。

2、把搜索條件哪里,改成表名.字段的形式,這樣搜索主表的字段是沒問題,但是搜索附表還是有問題,這樣生成的SQL語句中,附表保留了,但是搜索還是有問題,報(bào)錯(cuò)如下:

TP5.1 多表關(guān)聯(lián)查詢中實(shí)現(xiàn)搜索功能

TP5.1 多表關(guān)聯(lián)查詢中實(shí)現(xiàn)搜索功能

哪位大神幫忙看一下,這個(gè)要怎么做呢???

問題解答

回答1:

看你這寫的是想在兩張關(guān)聯(lián)的表里查數(shù)據(jù)吧,你用parma接受兩個(gè)值嗎?

你可以這樣,只接收一個(gè)值$where

$map[] = ['p.name | s.name', 'like', '%' . $productName . '%'];

然后用鏈接查詢,再加上分組”gruop",試試看一下!

不知道我說的對不對

相關(guān)文章:
主站蜘蛛池模板: 辽阳市| 昌宁县| 肇东市| 台山市| 黔西| 芜湖市| 房产| 永登县| 中方县| 广德县| 霍城县| 比如县| 湖南省| 都昌县| 小金县| 大丰市| 永善县| 方正县| 江永县| 新田县| 连南| 塔城市| 内丘县| 嘉鱼县| 水富县| 中卫市| 邢台县| 衡水市| 惠安县| 中牟县| 辽宁省| 大冶市| 子洲县| 神木县| 安顺市| 凤山县| 丽水市| 尚志市| 万源市| 湖北省| 凤翔县|