2016-09-28 53 views
0

在我的模型上,我嘗試編寫一個php模型,它將從數據庫中獲得一個關聯數組。但我不知道如何解決這個問題。 所以之後我執行此SQL查詢:來自數據庫的codeigniter關聯數組

SELECT balance_events.weight,balance_events.added_date, 
     balance_entries.mid FROM balance_events, balance_entries 
WHERE balance_entries.added_date BETWEEN '2016-08-02' AND '2016-08-03' 
    AND balance_entries.ptid =12 
    AND balance_entries.beid = balance_events.id 

我會得到這個表:

enter image description here

,並從該表我想提取asociative陣列,它看起來就像這樣:

count = ['13'=>1, '6'=>4, '16'=>3, '4'=>3] 

其中'mid'=>number可以在表中找到mid多少倍。 ex。 mid '13'=>1因爲您只能找到一次。

我認爲我將不得不使用SQL COUNT函數,但我如何在codeigniter中的PHP模型中彙總所有這些?我知道如何配置控制器和視圖,但我不知道如何實際做到實際的php模型,這將使​​我得到所需的數組。

+0

你想在你的模型中寫查詢? – devpro

+0

是的,你在那裏處理你在控制器中發送的實際數據,然後查看,對吧? – Rommel

+0

糾正我,如果我錯了,1)你想在CI模型等轉換此查詢,2)您的預期結果。去年,探索'GROUP BY' – devpro

回答

0

嘗試此查詢可以幫助你,

$result = $this->db->select('balance_events.weight,balance_events.added_date,COUNT(balance_entries.mid) as mid_count') 
        ->from('balance_events, balance_entries') 
        ->where('balance_entries.added_date BETWEEN "2016-08-02" AND "2016-08-03" ') 
        ->where('balance_entries.ptid','12') 
        ->where('balance_entries.beid','balance_events.id') 
        ->group_by('balance_entries.mid') 
        ->get(); 

return $result->result_array(); 
+0

一個PHP錯誤遇到 嚴重性:注意 消息:數組字符串轉換 文件名:觀點/ test.php的 行號:12 回溯: 文件: /var/www/html/test/application/views/test.php 線:12 功能:_error_handler 文件:/var/www/html/test/application/controllers/Test.php 行:9 功能:查看 File: /var/www/html/test/index.php 行:315 功能:require_once – Rommel

+0

這是我得到的錯誤,在視圖中我只是從控制器回顯var。 – Rommel

+0

您需要使用print_r()代替echo – kc1994

0

我不知道你將如何在SQL創建這一點,但因爲你的php標記,我寫了會做這樣的功能。

<?php 
    $query = array(array("mid"=>13), array("mid"=>2), array("mid"=>13), array("mid" =>6), array("mid" => 13), array("mid" => 6)); 

    function createMidArray($queryResult){ 
     $returnArray = array(); 
     foreach ($queryResult as $qr){ 
      $returnArray[$qr['mid']]++; 
     } 
    return $returnArray; 
} 

    print_r(createMidArray($query)); 

?> 

的這個輸出是Array ([13] => 3 [2] => 1 [6] => 2)它匹配到了我的輸入$查詢(這是一個二維數組)。我期待您的查詢輸出存儲在一個類似的陣列,但與更多的數據和密鑰

+0

OP需要查詢... – devpro

+0

OP有一個查詢,我使用他的查詢結果來生成這個新的數組,這是他需要 – IsThisJavascript

+0

從問題:*但我怎麼能在PHP模型中聚集所有這些笨?我知道如何配置控制器和視圖,但我不知道如何實際做到實際的php模型,這將使​​我獲得所需的數組。* – devpro