Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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:
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:
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!!!
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);
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
>
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???
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.
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.