D'Emery 0 Denunciar post Postado Novembro 11, 2010 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
William Bruno 1501 Denunciar post Postado Novembro 11, 2010 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
D'Emery 0 Denunciar post Postado Novembro 11, 2010 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
Motta 645 Denunciar post Postado Novembro 11, 2010 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
D'Emery 0 Denunciar post Postado Novembro 11, 2010 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
Motta 645 Denunciar post Postado Novembro 11, 2010 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