Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo Alarico

[Resolvido] Este script esta muito porco! Preciso da de

Recommended Posts

Amigos do Imasters! BOA NOITE!!!!

 

Bom, eu sou iniciante, por isto o motivo do Script Porco! (hehe)

 

O Script abaixo faz uma verificação no banco de dados e retorna todos os valores de comissionamento de um determinado consultor (baseado em datas e meses)

 

Como eu sou muito cabaço (AINDA.. HEHE)

 

Eu fiz 12 selects (um para cada mês) somando os dados ao final e totalizando em uma variável que é mostrada em um xml (que depois eu vou utilizar no meu gráfico em Flash)

 

Preciso de ajuda pra aprender desenvolver isto de forma correta (não porca como eu fiz) hehe (da até vergonha de mostrar o Script). Da forma que esta, funciona legal (mas ta ridiculo..) Alguém fera pode me dar uma mão?

 

Forte abraço...

 

SCRIPT

------------------------------------------------------------------------------------------------------------------------------

<?
include "conect.php";

$select1	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-01-1' AND data_pagamento <= '2008-01-31' ORDER BY 'data_pagamento' DESC";
$query1		=	mysql_query($select1);

if(mysql_num_rows($query1) == 0) {$total_jan = "0.00";} else {

			while($jan	=	mysql_fetch_array($query1)){
			$valor_jan		=	$jan[valor_comissao];
			$total_jan		=	$total_jan + $valor_jan;
			}}
//------------------------------------------------------------------------------------------------
$select2	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-02-1' AND data_pagamento <= '2008-02-31' ORDER BY 'data_pagamento' DESC";
$query2		=	mysql_query($select2);

if(mysql_num_rows($query2) == 0) {$total_fev = "0.00";} else {

			while($fev	=	mysql_fetch_array($query2)){
			$valor_fev		=	$fev[valor_comissao];
			$total_fev		=	$total_fev + $valor_fev;
			}}
//------------------------------------------------------------------------------------------------
$select3	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-03-1' AND data_pagamento <= '2008-03-31' ORDER BY 'data_pagamento' DESC";
$query3		=	mysql_query($select3);

if(mysql_num_rows($query3) == 0) {$total_fev = "0.00";} else {

			while($mar	=	mysql_fetch_array($query3)){
			$valor_mar		=	$mar[valor_comissao];
			$total_mar		=	$total_mar + $valor_mar;
			}}

//------------------------------------------------------------------------------------------------
$select4	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-04-1' AND data_pagamento <= '2008-04-31' ORDER BY 'data_pagamento' DESC";
$query4		=	mysql_query($select4);

if(mysql_num_rows($query4) == 0) {$total_abr = "0.00";} else {

			while($abr	=	mysql_fetch_array($query4)){
			$valor_abr		=	$abr[valor_comissao];
			$total_abr		=	$total_abr + $valor_abr;
			}}

//------------------------------------------------------------------------------------------------
$select5	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-05-1' AND data_pagamento <= '2008-05-31' ORDER BY 'data_pagamento' DESC";
$query5		=	mysql_query($select5);

if(mysql_num_rows($query5) == 0) {$total_mai = "0.00";} else {

			while($mai	=	mysql_fetch_array($query5)){
			$valor_mai		=	$mai[valor_comissao];
			$total_mai		=	$total_mai + $valor_mai;
			}}

//------------------------------------------------------------------------------------------------
$select6	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-06-1' AND data_pagamento <= '2008-06-31' ORDER BY 'data_pagamento' DESC";
$query6		=	mysql_query($select6);

if(mysql_num_rows($query6) == 0) {$total_jun = "0.00";} else {

			while($jun	=	mysql_fetch_array($query6)){
			$valor_jun		=	$jun[valor_comissao];
			$total_jun		=	$total_jun + $valor_jun;
			}}

//------------------------------------------------------------------------------------------------
$select7	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-07-1' AND data_pagamento <= '2008-07-31' ORDER BY 'data_pagamento' DESC";
$query7		=	mysql_query($select7);

if(mysql_num_rows($query7) == 0) {$total_jul = "0.00";} else {

			while($jul	=	mysql_fetch_array($query7)){
			$valor_jul		=	$jul[valor_comissao];
			$total_jul		=	$total_jul + $valor_jul;
			}}

//------------------------------------------------------------------------------------------------
$select8	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-08-1' AND data_pagamento <= '2008-08-31' ORDER BY 'data_pagamento' DESC";
$query8		=	mysql_query($select8);

if(mysql_num_rows($query8) == 0) {$total_ago = "0.00";} else {

			while($ago	=	mysql_fetch_array($query8)){
			$valor_ago		=	$ago[valor_comissao];
			$total_ago		=	$total_ago + $valor_ago;
			}}

//------------------------------------------------------------------------------------------------
$select9	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-09-1' AND data_pagamento <= '2008-09-31' ORDER BY 'data_pagamento' DESC";
$query9		=	mysql_query($select9);

if(mysql_num_rows($query9) == 0) {$total_set = "0.00";} else {

			while($set	=	mysql_fetch_array($query9)){
			$valor_set		=	$set[valor_comissao];
			$total_set		=	$total_set + $valor_set;
			}}

//------------------------------------------------------------------------------------------------
$select10	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-10-1' AND data_pagamento <= '2008-10-31' ORDER BY 'data_pagamento' DESC";
$query10		=	mysql_query($select10);

if(mysql_num_rows($query10) == 0) {$total_out = "0.00";} else {

			while($out	=	mysql_fetch_array($query10)){
			$valor_out		=	$out[valor_comissao];
			$total_out		=	$total_out + $valor_out;
			}}

//------------------------------------------------------------------------------------------------
$select11	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-11-1' AND data_pagamento <= '2008-11-31' ORDER BY 'data_pagamento' DESC";
$query11		=	mysql_query($select11);

if(mysql_num_rows($query11) == 0) {$total_nov = "0.00";} else {

			while($nov	=	mysql_fetch_array($query11)){
			$valor_nov		=	$nov[valor_comissao];
			$total_nov		=	$total_nov + $valor_nov;
			}}

//------------------------------------------------------------------------------------------------
$select12	=	"SELECT * FROM comissionamento WHERE id_consultor = '1' AND  status = '2' AND data_pagamento >= '2008-12-1' AND data_pagamento <= '2008-12-31' ORDER BY 'data_pagamento' DESC";
$query12		=	mysql_query($select12);

if(mysql_num_rows($query12) == 0) {$total_dez = "0.00";} else {

			while($dez	=	mysql_fetch_array($query12)){
			$valor_dez		=	$dez[valor_comissao];
			$total_dez		=	$total_dez + $valor_dez;
			}}



/*echo "

Janeiro $total_jan<br>
Fevereiro $total_fev<br>
Março $total_mar<br>
Abril $total_abr<br>
Maio $total_mai<br>
Junho $total_jun<br>
Julho $total_jul<br>
Agosto $total_ago<br>
Setembro $total_set<br>
Outubro $total_out<br>
Novembro $total_nov<br>
Dezembro $total_dez<br>

";
*/
?>


<chart palette='2' caption='Consultor: Antonio Rocha' xAxisName='Relatório de pagamentos anual' yAxisName='Valores em R$' showValues='0' decimals='1' formatNumberScale='0' useRoundEdges='1'>
<set label='Janeiro' value='<?=sprintf("%01.2f",$total_jan);?>' color='009933' />
<set label='Fevereiro' value='<?=sprintf("%01.2f",$total_fev);?>' color='009933'/>
<set label='Março' value='<?=sprintf("%01.2f",$total_mar);?>' color='009933'/>
<set label='Abril' value='<?=sprintf("%01.2f",$total_abr);?>' color='009933'/>
<set label='Maio' value='<?=sprintf("%01.2f",$total_mai);?>' color='009933'/>
<set label='Junho' value='<?=sprintf("%01.2f",$total_jun);?>' color='009933'/>
<set label='Julho' value='<?=sprintf("%01.2f",$total_jul);?>' color='009933'/>
<set label='Agosto' value='<?=sprintf("%01.2f",$total_ago);?>' color='009933'/>
<set label='Setembro' value='<?=sprintf("%01.2f",$total_set);?>' color='009933'/>
<set label='Outubro' value='<?=sprintf("%01.2f",$total_out);?>' color='009933'/>
<set label='Novembro' value='<?=sprintf("%01.2f",$total_nov);?>' color='009933'/>
<set label='Dezembro' value='<?=sprintf("%01.2f",$total_dez);?>' color='009933'/>
</chart>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rode este selecr no MySQL e veja se obtém o resultado desejado.

Se for o esperado, tente rodar com o PHP e obter os valores. Se tiver dificuldades, volte aqui. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

SELECT Sum(valor_comissao) as total, DATE_FORMAT('%m', data_pagamento) as mes FROM comissionamento WHERE id_consultor = 1 AND  status = 2 Group By data_pagamento ORDER BY mes DESC

Use <?php em vez de <? e use aspas nos índices do tipo string de arrays.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo,

 

Antes de qualquer coisa, brigadão pela resposta...

 

O SQL retornou 2 valores e no campo mes retorna NULL

 

No script (porco) que fiz, retorna 6 registros no mês de março (o resto esta tudo zerado pois não têm registros ainda)

 

Valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe-me. Cometi dois erros: 1. A ordem dos parâmetros de DATE_FORMAT() está errada. 2. Eu deveria usar mes no Group By

 

Tente assim:

 

SELECT Sum(valor_comissao) as total, DATE_FORMAT(data_pagamento, '%m') as mes FROM comissionamento WHERE id_consultor = 1 AND  status = 2 Group By mes ORDER BY mes DESC

Veja se agora dá certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe-me. Cometi dois erros: 1. A ordem dos parâmetros de DATE_FORMAT() está errada. 2. Eu deveria usar mes no Group By

 

Tente assim:

 

SELECT Sum(valor_comissao) as total, DATE_FORMAT(data_pagamento, '%m') as mes FROM comissionamento WHERE id_consultor = 1 AND  status = 2 Group By mes ORDER BY mes DESC

Veja se agora dá certo

 

Beraldo!! PQP!!! você É O CARA MESMO!!!

 

Deu certinho!!

 

Kra, agora, você poderia me explicar a linha (tanto pra mim, quando para a galera acho que vai ser super útil.. )

 

Mais uma vez, brigadão pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

sum(comissao) retorna a soma dos valores do campo comissao. O as total é simplesmente um "apelido" para o campo. O mesmo ocorre com DATE_FORMAT(): retorno somente o mês da data cadastrada, usando outro apelido.

 

O Group By faz com que só haja uma linha para cada mês, que é o "campo" (na verdade, o apelido para o campo) usado para realizar o agrupamento.

 

Para resgatar os valores, não tem segredo. É praticsamente da mesma forma. Cada mês está numa linha. :thumbsu:

Compartilhar este post


Link para o post
Compartilhar em outros sites

sum(comissao) retorna a soma dos valores do campo comissao. O as total é simplesmente um "apelido" para o campo. O mesmo ocorre com DATE_FORMAT(): retorno somente o mês da data cadastrada, usando outro apelido.

 

O Group By faz com que só haja uma linha para cada mês, que é o "campo" (na verdade, o apelido para o campo) usado para realizar o agrupamento.

 

Para resgatar os valores, não tem segredo. É praticsamente da mesma forma. Cada mês está numa linha. :thumbsu:

 

Kra, brigadão mesmo!! Resolveu geral...

 

Já estou implementando isto por aqui... (depois vou até bolar um script de estatísticas baseado nesta info e disponibilizar para a galeral)

 

Forte abraço pra tí...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo,

 

Estou postando as alterações que fiz no Script (se você achar que da pra melhorar mais, só me dar um toque) valeu!!

 

<?php
include "conect.php";

$select_comissao	=	"SELECT sum(valor_comissao) as total, DATE_FORMAT(data_pagamento, '%m') as mes FROM comissionamento WHERE id_consultor = 1 AND  status = 2 AND data_pagamento LIKE CONVERT( _utf8 '%2008%' USING latin1 ) COLLATE latin1_swedish_ci Group By mes ORDER BY mes DESC";
$query_comissao		=	mysql_query($select_comissao);

if(mysql_num_rows($query_comissao)==0){echo "Nenhum registro encontrado";}

else {

		while($dados	=	mysql_fetch_array($query_comissao)) {
		$total_mes		=	$dados[total];
		$mes			=	$dados[mes];
			
			if($mes=="01") {$jan	=	$total_mes;}
			if($mes=="02") {$fev	=	$total_mes;}
			if($mes=="03") {$mar	=	$total_mes;}
			if($mes=="04") {$abr	=	$total_mes;}
			if($mes=="05") {$mai	=	$total_mes;}
			if($mes=="06") {$jun	=	$total_mes;}
			if($mes=="07") {$jul	=	$total_mes;}
			if($mes=="08") {$ago	=	$total_mes;}
			if($mes=="09") {$set	=	$total_mes;}
			if($mes=="10") {$out	=	$total_mes;}
			if($mes=="11") {$nov	=	$total_mes;}
			if($mes=="12") {$dez	=	$total_mes;}
		
		}

?>

<chart palette='2' caption='Consultor: Antonio Rocha' xAxisName='Relatório de pagamentos anual' yAxisName='Valores em R$' showValues='0' decimals='1' formatNumberScale='0' useRoundEdges='1'>
<set label='Janeiro' value='<?=sprintf("%01.2f",$jan);?>' color='009933' />
<set label='Fevereiro' value='<?=sprintf("%01.2f",$fev);?>' color='009933'/>
<set label='Março' value='<?=sprintf("%01.2f",$mar);?>' color='009933'/>
<set label='Abril' value='<?=sprintf("%01.2f",$abr);?>' color='009933'/>
<set label='Maio' value='<?=sprintf("%01.2f",$mai);?>' color='009933'/>
<set label='Junho' value='<?=sprintf("%01.2f",$jun);?>' color='009933'/>
<set label='Julho' value='<?=sprintf("%01.2f",$jul);?>' color='009933'/>
<set label='Agosto' value='<?=sprintf("%01.2f",$ago);?>' color='009933'/>
<set label='Setembro' value='<?=sprintf("%01.2f",$set);?>' color='009933'/>
<set label='Outubro' value='<?=sprintf("%01.2f",$out);?>' color='009933'/>
<set label='Novembro' value='<?=sprintf("%01.2f",$nov);?>' color='009933'/>
<set label='Dezembro' value='<?=sprintf("%01.2f",$dez);?>' color='009933'/>
</chart>

<?
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.