Ir para conteúdo

POWERED BY:

Arquivado

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

D'Emery

Organizando uma Estatística

Recommended Posts

Olá Galera,

 

To com outra dúvida, agora sobre Estatística!

 

Como eu faço somente a parte MySQL?

 

É o seguinte, a tabela de estatística tá assim:

 

  • empresa_estatistica

  • codigo
  • codigo_empresa
  • ip
  • data
  • hora

Gostaria de saber como eu faço para ter ele selecionar somente o mês, e dentro do mês ele dar quantos resultados (visita) teve?

 

Exemplo:

  • Outubro

  • 23
  • Novembro

  • 27
  • Dezembro

  • 21
  • Janeiro

  • 19
  • Fevereiro

  • 26
  • Março

  • 29
  • Abril

  • 31
  • Maio

  • 43
  • Junho

  • 47
  • Julho

  • 55
  • Agosto

  • 56
  • Setembro

  • 58

Agora, como eu mostrei no exemplo, não se começa por Janeiro e sim os últimos 12 meses!!!

 

Agradeço desde já a atenção!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem a função MONTH() para você pegar só o mês

e com um COUNT + GROUP BY, você consegue contar os registros de cada mês

 

se tiver dificuldades, vá postando as tuas tentativas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei de outra forma, só que ainda tá faltando algo!!!

 

$mes = array(
	"01" => "Jan",
	"02" => "Fev",
	"03" => "Mar",
	"04" => "Abr",
	"05" => "Mai",
	"06" => "Jun",
	"07" => "Jul",
	"08" => "Ago",
	"09" => "Set",
	"10" => "Out",
	"11" => "Nov",
	"12" => "Dez",
);

$estatistica = "SELECT DISTINCT MONTH(data) FROM empresa_estatistica WHERE codigo_empresa='$empresa_codigo' ORDER BY data DESC";
$query_estatistica = mysql_query($estatistica);
	if($query_estatistica){
		$rows_estatistica = mysql_num_rows($query_estatistica);
			if($rows_estatistica > 0){
				for($e=0; $e<$rows_estatistica; $e++){
					$data = mysql_result($query_estatistica,$e,data);
						if($data){
							$data = explode("-", $data);
							$visualizacoes = "SELECT * FROM empresa_estatistica WHERE codigo_empresa='$empresa_codigo' AND MONTH(data)='$data[1]'";
							$query_visualizacoes = mysql_query($visualizacoes);
								if($query_visualizacoes){
									$vis[$data[1]] = mysql_num_rows($query_visualizacoes);
								}
						}
					
					echo $mes[$data[1]]." - ".$vis[$data[1]]."<br />";
				}
			}
	}

Só que ele da erro na expressão, já que ele pega o MONTH. Se eu tiver como pegar invés da "data", pegar o "MONTH(data)" fica até mais fácil porque não vai utilizar o "explode". Mas como eu pego o MONTH???

 

$data = mysql_result($query_estatistica,$e,data);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou o agrupamento e a contagem.

Existe a function YEAR ?!

 

SELECT YEAR(DATA),(MONTH(data),COUNT(*) QTD 
FROM empresa_estatistica 
WHERE codigo_empresa='$empresa_codigo' 
GROUP BY YEAR(DATA),(MONTH(data)
ORDER BY data DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou o agrupamento e a contagem.

Existe a function YEAR ?!

 

SELECT YEAR(DATA),(MONTH(data),COUNT(*) QTD 
FROM empresa_estatistica 
WHERE codigo_empresa='$empresa_codigo' 
GROUP BY YEAR(DATA),(MONTH(data)
ORDER BY data DESC

 

vamos ver... vou testar!

 

100% excelente!

 

Agora como eu vou pegar os dados, para ficar assim? (ACHO QUE ISSO JÁ É PHP!!!)

 

Nov/2010 - 18 visualizações

Dez/2010 - 23 visualizações

Jan/2010 - 27 visualizações

Fev/2010 - 33 visualizações

Mar/2010 - 39 visualizações

Abr/2010 - 40 visualizações

Mai/2010 - 41 visualizações

Jun/2010 - 43 visualizações

Jul/2010 - 46 visualizações

Ago/2010 - 50 visualizações

Set/2010 - 49 visualizações

Out/2010 - 52 visualizações

 

Será que é expressão abaixo?

 

$mes = mysql_result($query_estatistica,0,month(data));
$ano = mysql_result($query_estatistica,0,year(data));
$quantidade = mysql_result($query_estatistica,0,qnt);

Houve um ato falho no que escrevi!!!!

 

Nov/2010 - 18 visualizações

Out/2010 - 23 visualizações

Set/2010 - 27 visualizações

Ago/2010 - 33 visualizações

Jul/2010 - 39 visualizações

Jun/2010 - 40 visualizações

Mai/2010 - 41 visualizações

Abr/2010 - 43 visualizações

Mar/2010 - 46 visualizações

Fev/2010 - 50 visualizações

Jan/2010 - 49 visualizações

Dez/2009 - 52 visualizações

 

Como ele irá mostrar os últimos 12 meses tem que ser de Hoje pra trás!!! (não para frente como eu tinha mostrado anteriormente!!!)

 

Como eu faço para ter a resposta do MySQL???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não domino síntaxe de MySql mas tente :

 

SELECT YEAR(DATA),(MONTH(data),COUNT(*) QTD 
FROM empresa_estatistica 
WHERE codigo_empresa='$empresa_codigo' 
AND  DATA >= CURDATE() - 365
GROUP BY YEAR(DATA),(MONTH(data)
ORDER BY data DESC

Para pesquisar entre datas devem já existir vários tópicos semelhantes aqui, dê uma Pesquisada.

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.