在我的模型上,我尝试编写一个php模型,它将从数据库中获取一个关联数组。但我不太清楚如何处理这个问题。 所以在我执行这个SQL查询之后:
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
我会得到这张表:
从那张表中我想提取一个看起来像这样的asociative数组:
count = ['13'=>1, '6'=>4, '16'=>3, '4'=>3]
其中'mid'=>number
表示可以在表格中找到mid
的次数。
恩。 mid '13'=>1
因为您只能找到一次。
我认为我将不得不使用SQL COUNT函数,但我如何在codeigniter中的PHP模型中聚合所有这些?我知道如何配置控制器和视图,但我不知道如何实际执行实际的php模型,这将获得所需的数组。
答案 0 :(得分: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();
答案 1 :(得分: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 )
的输出,它匹配我输入的$查询(这是一个2D数组)。我希望你的查询输出存储在一个类似的数组中,但有更多的数据和键