TP5.1 多表關(guān)聯(lián)查詢中實(shí)現(xiàn)搜索功能
問(wèn)題描述
多表關(guān)聯(lián)搜索功能的問(wè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 . '%'];}// 定義分頁(yè)參數(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)樗阉鞯氖峭ㄟ^(guò)join加入的附表的字段,所以用附表的別名.字段的形式,如:p.name, s.name,這樣搜索有問(wèn)題,生成的SQL語(yǔ)句中,把兩個(gè)附表都過(guò)濾了,如下:
這樣的結(jié)果附加表沒(méi)了,所以字段加了別名就不對(duì)了。
2、把搜索條件哪里,改成表名.字段的形式,這樣搜索主表的字段是沒(méi)問(wèn)題,但是搜索附表還是有問(wèn)題,這樣生成的SQL語(yǔ)句中,附表保留了,但是搜索還是有問(wèn)題,報(bào)錯(cuò)如下:
哪位大神幫忙看一下,這個(gè)要怎么做呢???
問(wèn)題解答
回答1:看你這寫的是想在兩張關(guān)聯(lián)的表里查數(shù)據(jù)吧,你用parma接受兩個(gè)值嗎?
你可以這樣,只接收一個(gè)值$where
$map[] = ['p.name | s.name', 'like', '%' . $productName . '%'];
然后用鏈接查詢,再加上分組”gruop",試試看一下!
不知道我說(shuō)的對(duì)不對(duì)
相關(guān)文章:
1. javascript - axios請(qǐng)求回來(lái)的數(shù)據(jù)組件無(wú)法進(jìn)行綁定渲染2. javascript - jQuery post()方法,里面的請(qǐng)求串可以轉(zhuǎn)換為GBK編碼么?可以的話怎樣轉(zhuǎn)換?3. java - 在用戶不登錄的情況下,用戶如何添加保存到購(gòu)物車?4. javascript - JS變量被清空5. javascript - 關(guān)于apply()與call()的問(wèn)題6. 安全性測(cè)試 - nodejs中如何防m(xù)ySQL注入7. css3 - 純css實(shí)現(xiàn)點(diǎn)擊特效8. javascript - main head .intro-text{width:40%} main head{display:flex}為何無(wú)效?9. Python中使用超長(zhǎng)的List導(dǎo)致內(nèi)存占用過(guò)大10. javascript - 有適合開(kāi)發(fā)手機(jī)端Html5網(wǎng)頁(yè)小游戲的前端框架嗎?
