2014-02-15 151 views
1

在我的項目中我有4個表格。一種叫Calls,Projects,ProductsUsersCodeigniter活動記錄查詢計數

呼叫有2 FK(project_iduser_id)和項目具有一個FK(product_id)。

我想查詢表致電我想知道每個運營商收到的每個產品的呼叫數量。

我想查詢是這樣的:

[{"name":"User1","Project1":"120","Project2":"10,"Project3":"140...} 
{"name":"User2","Project1":"80","Project2":"60,"Project3":"14...}] 

回答

1

我猜當你的意思是運營商你的意思是用戶

$this->db->select('count(P.product_id) as total_product ,CL.project_id, CL.user_id, P.project_name') 
      ->from('Calls CL') 
      ->join('Projects P', 'P.project_id=CL.project_id') 
      ->group_by('CL.project_id, CL.user_id') 
      ->get(); 

現在你可以通過你的結果寫一個PHP腳本循環使json

$index = 0; 
    $user_data = array(); 
    $user_key = array(); 
    foreach ($result as $row) { 
     if(!isset($user_key[$row['user_id']])){ 
      $user_key[$row['user_id']] = $index; 
      $index++; 
     } 
     $user_data[$user_key[$row['user_id']]]['user_name'] = $row['user_name']; 
     $user_data[$user_key[$row['user_id']]][$row['project_name']] = $row['total_product']; 
    } 

我沒有測試代碼,但它應該工作

+0

你剛剛從癲癇發作中拯救了我。 :) 我會看看,但它似乎會做的工作! ;) –

+0

Minhaz Ahmed的代碼就像一個魅力! ;) –

+0

這是偉大的,只要它的工作我開心太:) – Minhaz