我希望每行显示一个代理,包含所有约会,回拨等...
我试图在for循环中输入for循环。但是,它没有给我正确的结果。
CODE:
foreach($agents_summary as $as){
<tr>
<td><?=$as['index']?></td>
... etc...
</tr>
ARRAY SAMPLE:
Array
(
[0] => Array
(
[agent_id] => 1
[first_name] => Ronak
[last_name] => Patel
[transaction_type] => APPOINTMENT
[transaction_count] => 5
)
[1] => Array
(
[agent_id] => 1
[first_name] => Ronak
[last_name] => Patel
[transaction_type] => CALL_BACK
[transaction_count] => 5
)
.....
AND SO ON...
编辑: 数据库查询:
SELECT
a.id AS agent_id,
a.first_name AS first_name,
a.last_name AS last_name,
ct.transaction_type AS transaction_type,
count(*) AS transaction_count
FROM agent AS a
INNER JOIN client_transaction AS ct
ON a.id=ct.generated_by_id
WHERE ct.transaction_type = 'APPOINTMENT'
OR ct.transaction_type = 'CALL_BACK'
OR ct.transaction_type = 'SENT_EMAIL'
OR ct.transaction_type = 'SALE'
GROUP BY agent_id, transaction_type
ORDER BY `agent_id` ASC, `transaction_type` ASC
答案 0 :(得分:1)
GROUP BY agent_id
编辑: 将有一个带有for循环的PHP解决方案,它将根据唯一的agent_id合并不同的值:
$agents = array();
foreach($agents_summary as $as){
$agents[$as['agent_id']]['first_name'] = $as['first_name'];
$agents[$as['agent_id']]['last_name'] = $as['last_name'];
if(empty($agents[$as['agent_id']][$as['transaction_type']])){
$agents[$as['agent_id']][$as['transaction_type']] = $as['transaction_count'];
}
else{
$agents[$as['agent_id']][$as['transaction_type']] += $as['transaction_count'];
}
}
foreach($agents as $agentID => $agent){
<tr>
<td><?=$agentID?></td>
<td><?=$agent['first_name']?></td>
<td><?=$agent['APPOINTMENT']?></td>
... etc...
</tr>
}