原先想著把數組 $customerid 拆分出來,判斷長度給不同的變數,變數多少還要再判斷,然後寫 下邊的mysql查詢,有些麻煩,請教有沒有好的方法,謝了!
---------------------------------------------
$customerid:
array (size=2)
0 => string '5' (length=1)
1 => string '14' (length=2)
----------------------------------------------
$customer->where("id in ".$customerid)->count(); //是這個意思,當然,數組直接放這裡是不對的
回複討論(解決方案)
因為要統計 count,下邊的mysql語句 ,最好是一條。 迴圈一條 一條的查詢,也不好。
foreach ($customerid as &$value) {
$count = $customer->where("id in "."($value)")->count();
$arrcount[] = $count;
}
$count = 0;
foreach ($arrcount as &$value) {
$count = $count + $value;
}
解決了,新問題又來了
怎麼控制,不同條件, (顯示前10條記錄)
比如說
where("id in ".(3)) 有2條
where("id in ".(2)) 有1條
實際上是,每個使用者收藏了哪些產品。 一個使用者可能收藏好多個
我要顯示它們匯總的前10條 ,用聯集查詢,又不知道聯多少次,再迴圈算次數,好麻煩。
難道最好的辦法是改表結構?
在產品表中,加一個 userid? 一個使用者可以收藏不同的產品? 好像這樣設計可以
第一個問題,如果是查單一id,直接id = xx就可以,沒必要用in
如果想查多個id,把數組用implode函數組合成id in (1, 2, 3) 這種格式的字串
最後的問題,如果你的需求是輸出使用者列表,同時輸出每個人前10條收藏,就要考慮緩衝了
every cool