Somar dentro de 2 whiles sem duplicar resultado
Fala galera to com uma duvida escabrosa que gostaria de ajuda... vou explicar a logica
tenho 3 tabelas: jobs, pecas e propostas
o que estou fazendo é o seguinte:
1- a tabela jobs é pai de pecas ou seja, so pode ter um job mais varias pecas dentro dele;
2- a tabela propostas é pai de jobs, cada id de proposta pode ter varios jobs com as varias pecas incluida em cada job
nas pecas é onde estao os valores que somados da o valor total do job até ai tudo bem, já esta dando certo o resultado do while mais qd jogo este resultado para o while de propostas ele duplica a soma e soma todos; vou postar o codigo
//Jobs e pecas
$jobs = mysql_query("SELECT * FROM tb_jobs")or die(mysql_error());
while($rowJobs = mysql_fetch_assoc($jobs)){
$somaPecas = mysql_query("SELECT id_job, SUM(vl_peca) FROM tb_pecas WHERE id_job = '".$rowJobs[id]."'");
while($rowSubPeca = mysql_fetch_assoc($somaPecas)){
echo $resultaSubPeca = $rowSubPeca['SUM(vl_peca)'];
}
//resultado satisfatorio
job 1 => valorpeca1(100) + valorpeca2(100)=R$ 200,00 //valores ficticios apenas para ilustrar
job 2 => valorpeca3(250) + valorpeca4(150)=R$ 400,00
...
}
*até aqui tudo bem, ele ta calculando direitinho as query acima problema está qd pego a mesma query acima e jogo dentro de outro while abaixo (sendo que agora ele pega apenas os jobs do mesmo id de proposta) ele nao faz o calculo de todas as peças, mais agora ele precisa somar de mais de 1 job, ele ta pegando apenas o primeiro registro de job e soma:
//Propostas
$propostas = mysql_query("SELECT * FROM tb_propostas")or die(mysql_error());
while($rowProposta = mysql_fetch_assoc($propostas)){
//Jobs e pecas
$jobs = mysql_query("SELECT * FROM tb_jobs WHERE id_job = '$rowProposta[id_job]' ")or die(mysql_error());
while($rowJobs = mysql_fetch_assoc($jobs)){
$somaPecas = mysql_query("SELECT id_job, SUM(vl_peca) FROM tb_pecas WHERE id_job = '".$rowJobs[id]."'");
while($rowSubPeca = mysql_fetch_assoc($somaPecas)){
echo $resultaSubPeca = $rowSubPeca['SUM(vl_peca)'];
}
}
//resultado
proposta 1= job 1 => valorpeca1(100) + valorpeca2(100)=R$ 200,00 + job 2 => valorpeca3(250) + valorpeca4(150)=R$ 400,00 => resultado= R$ 200
//era pra somar os 2 jobs, mais ele pega apenas a soma de do job 1.
*lembrando que o resultado da query de proposta vem assim:
proposta 1 => id_job[1][2] em strings
}
ja tentei de tudo e me embaralhei, ajuda aí galera!
Discussão (8)
Carregando comentários...