在兩張表裡搜尋關鍵字,把符合關鍵字所對應的id查詢出來
$keyword = "XX"; //關鍵字$sql1= "select id from table1 where title like "%$keyword%";$result1 = $this->db->getAll($sql1); //sql執行後返回的id數組foreach($result1a as $k=>$v){ $result1[$k]['flat'] = 1; //給一個標識, 讓我知道這是從table1裡查出來的}$sql2= "select id from table2 where title like "%$keyword%";$result2 = $this->db->getAll($sql2);foreach($result2a as $k=>$v){ $result2[$k]['flat'] = 2;} $result = array_merge_recursive($result1, $result2);
回複討論(解決方案)
遇到什麼問題??
1、你的$result1a,$result1b都是空,迴圈沒什麼意義,估計打錯了
2、迴圈體貌似也沒什麼用
請把問題描述清楚
遇到什麼問題??
1、你的$result1a,$result1b都是空,迴圈沒什麼意義,估計打錯了
2、迴圈體貌似也沒什麼用
請把問題描述清楚
result1a ->result1,
result2a ->result2,
將sql1 和 sql2 合成一句sql 分別給與標誌
相當於執行sql返回下面類型
array(
array("id" => 4,"flat" => 1 ),
array( "id" => 7, "flat" => 1),
array( "id" => 4,"flat" => 2)
);
$keyword = "XX"; //關鍵字 $sql1= "select id from table1 where title like "%$keyword%";$result1 = $this->db->getAll($sql1); //sql執行後返回的id數組foreach($result1 as $k=>$v){ $result1[$k]['flat'] = 1; //給一個標識, 讓我知道這是從table1裡查出來的} $sql2= "select id from table2 where title like "%$keyword%";$result2 = $this->db->getAll($sql2);foreach($result2 as $k=>$v){ $result2[$k]['flat'] = 2;} $result = array_merge_recursive($result1, $result2);
$sql1= "select id,1 as flat from table1 where title like '%$keyword%' union all select id,2 as flat from table2 where title like '%$keyword%'";
這樣執行一次查詢就行了,下面的合并數組都可以免了。