2016-12-14 56 views
0

嗨,我試圖讓每一個數據的NUM行即等於由foreach循環的價值產生這裏是我的SAMP代碼產生同樣的結果在foreach循環

$query = $this->db->query("SELECT * FROM tblsamp"); 
    foreach ($query->result() as $row){ 

     $subquery = $this->db->query("SELECT * FROM other_table WHERE foo like '%$row->some_col%'"); 

     echo $subquery->num_rows(); 
     // Ill get the num rows here equal on the value of $row->som_col 
} 

這裏的樣本輸出,所以你可以可視化數據」

name |  NoRows 
name1 |  6 
name2 |  6 
name3 |  6 
name4 |  6 

的問題是,如果NAME1檢測‘6’行的NAME2,NAME3,NAME4。等也將輸出‘6’的行其是行的每個名字的數量是不同的。

爲什麼即時獲得相同的name1結果?

希望你的回答傢伙!謝謝!

+0

你應該做一個'JOIN'用'GROUP BY '將一個查詢中的所有結果都存入數據庫。 – jeroen

+0

有沒有做任何可能的方式加入? – zeus2026

+0

是的,你在做什麼是另一種可能的方式,但爲什麼執行潛在的數百個查詢,並寫一大堆的代碼時,一個查詢和幾行代碼更好地工作? – e4c5

回答

0

爲什麼不使用組和計數請求?

select t.name, count(*) 
from tblsamp t 
left join other_table on foo like concat('%',t.some_col,'%') 
group by t.name 
0
select t.name, count(*) 
from tblsamp t 
left join other_table on foo like concat('%',t.some_col,'%') 
group by t.name 

我用這個,但輸出仍然是相同的。它僅獲得第一個值和循環成其他列數據