第一个表(项)具有:item_id,item_name和item_value。
第二张表(讲义)包含:handout_id,handout_item_id,month, vol_id,receiver_name。
第三表(志愿者)包含volunteer_id,volunteer_name
我需要每个志愿者输出所选月份的每月项目总和值。 这是我到目前为止(我坚持:-s):
function mesec_svi(){
global $konekcija;
$mes=$_GET['mes'];
$query= "SELECT DISTINCT vol_id FROM handouts WHERE mes = {$mes} ";
$mesec_svi = mysqli_query($konekcija, $query);
potvrda_query($mesec_svi);
while($mesec_svi_lista=mysqli_fetch_assoc($mesec_svi)){
$volid= $mesec_svi_lista["vol_id"];
echo $volid.' ';
$query1= "SELECT handout_item_id FROM handouts WHERE vol_id = {$volid} AND mes = {$mes}";
$mesec_svi_o = mysqli_query($konekcija, $query1);
potvrda_query($mesec_svi_o);
while($mesec_svi_olista=mysqli_fetch_assoc($mesec_svi_o)){
$itemid= $mesec_svi_olista["handout_item_id"];
$query2= "SELECT item_value FROM items WHERE itemid = {$itemid}";
$pr_svi_o = mysqli_query($konekcija, $query2);
potvrda_query($pr_svi_o);
while($pr_svi_olista=mysqli_fetch_assoc($pr_svi_o)){
$pr= $pr_svi_olista["item_value"];
echo '</br>'.$pr.'</br>';}
}
}
}
这显示结果:
1
200
100
50
2
50
50
100
其中1和2是志愿者ID,其他数字是项目值。我需要总结这些价值。
1
350
2
200
我尝试了sum()和array_sum,但没有运气。
答案 0 :(得分:0)
尝试使用INNER JOIN
。查询将是 -
SELECT sum(item_value) as sum_item FROM handouts
INNER JOIN items ON items.itemid = handouts.handout_item_id
WHERE vol_id = {$volid} AND mes = {$mes} GROUP BY items.itemid
循环通过它 -
while($mesec_svi_olista=mysqli_fetch_assoc($mesec_svi_o)){
echo $mesec_svi_olista['sum_item'].'<br>';
}