RodrigoGomes Postado Maio 23, 2008 Denunciar Share Postado Maio 23, 2008 (editado) olá pessoal..eu não to conseguindo fazer um script.. que me mostre o número de visitas que teve cada mês, exemplo:Abril de 2008: 200 visitantesMarço de 2008: 320 visitantesFevereiro de 2008: 260 visitantesJaneiro de 2008: 410 visitantestendo no banco de dados: id, data, ip, paginao que já tenho feito é:$sqlmes=mysql_query("select * from visitas") or die(mysql_error()); $loguser=mysql_num_rows($sqlmes); while($logrow = mysql_fetch_array($sqlmes)){ $expdate = explode("-",$logrow['data']); switch ($expdate[1]) { case "01": $mes = Janeiro; break; case "02": $mes = Fevereiro; break; case "03": $mes = Março; break; case "04": $mes = Abril; break; case "05": $mes = Maio; break; case "06": $mes = Junho; break; case "07": $mes = Julho; break; case "08": $mes = Agosto; break; case "09": $mes = Setembro; break; case "10": $mes = Outubro; break; case "11": $mes = Novembro; break; case "12": $mes = Dezembro; break; } echo' <tr class="row-a"> <td class="first">'.$mes.' de '.$expdate[0].'</td> <td>0</td> </tr>'; }porem travei ai..se alguém tiver alguma idéia de como eu poderia fazer isso, ficaria muito grato.. abraços.. Editado Maio 23, 2008 por Vampyro Link para o comentário Compartilhar em outros sites More sharing options...
0 cassianooliver Postado Maio 24, 2008 Denunciar Share Postado Maio 24, 2008 $sqlmes=mysql_query("SELECT * FROM visitas WHERE mes = '$mes'") or die(mysql_error()); Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Maio 24, 2008 Autor Denunciar Share Postado Maio 24, 2008 (editado) mas de que adianta se são várias datas? Editado Maio 24, 2008 por Vampyro Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Maio 24, 2008 Denunciar Share Postado Maio 24, 2008 Cara, o teu problema você provavelmente vai ter que resolver na própria query, algo com um COUNT em conjunto com GRUOP BY, o que eu tenho em mente não vai funcionar, mas é por ai... até dá pra fazer na parte de programação, mas vai ser pura gambiarra.Se quiser eu movo o tópico pra parte de MySQL, que provavelmente você terá uma resposta satisfatória... Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Maio 24, 2008 Autor Denunciar Share Postado Maio 24, 2008 é eu consegui bolar uma forma de fazer em programação, mas realmente foi uma pura gambiarra..move ai, vamos ver no que vai dar.. abraços.. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 24, 2008 Denunciar Share Postado Maio 24, 2008 Oi, 'Vampyro' !Veja se é isso que você quer:select substring(data,1,7) as anomes, count(*) as nu_visitas from visitas where data >= '2008-01-01' group by anomes;Vai te mostrar quantas visitas por mes existiram em 2008.Se não for o que você quer, segunda-feira penso em algo novo. Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Maio 24, 2008 Autor Denunciar Share Postado Maio 24, 2008 +/-, bom vou explicar mais detalhadamente..eu tenho no banco de dados os valores:id, data, ip, pagina1 - 23-05-2008 - 201.x.x.x - /index.php2 - 23-05-2008 - 201.x.x.x - /index.php3 - 20-05-2008 - 201.x.x.x - /index.php4 - 05-03-2008 - 201.x.x.x - /index.php5 - 07-01-2008 - 201.x.x.x - /index.php6 - 30-12-2007 - 201.x.x.x - /index.php7 - 23-12-2007 - 201.x.x.x - /index.phpbeleza, este é o log de usuários, e eu quero exibir em uma página quantos usuários tiveram por mês.. independente do ano.. ficaria assim:Maio de 2008: 3 visitasMarço de 2008: 1 visitaJaneiro de 2008: 1 visitaDezembro de 2007: 2 visitasnão precisa esquentar a cabeça não, só me mostrar a forma de fazer isso que eu me viro com o resto.. abraços.. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 26, 2008 Denunciar Share Postado Maio 26, 2008 Oi, 'Vampyro' !A resposta que dei no post anterior atende suas necessidades. Para que o sql saia conforme você quer, inclui a cláusula order by conforme abaixo.select substring(data,1,7) as anomes, count(*) as nu_visitas from visitas where data >= '2008-01-01' group by anomes;Agora, é só pegar o resultado da consulta acima e listar na página com poucas alterações para obter o efeito desejado.PHP não é minha praia, por isso não posso te orientar como fazer naquela linguagem. Mas posso devolvê-lo à área de PHP para que o pessoal de lá te dê o BE-A-BA de como fazer. Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Maio 26, 2008 Autor Denunciar Share Postado Maio 26, 2008 (editado) perfeito Denis!era exatamente isso que eu queria..obrigadão mesmo.. vai ai o código php caso futuramente alguém precise..$sqlmes=mysql_query("select substring(data,1,7) as anomes, count(*) as nu_visitas from visitas where data >= '2008-01-01' group by anomes") or die(mysql_error()); $loguser=mysql_num_rows($sqlmes); for ($z=0; $z<$loguser; $z++) { $sqldate = mysql_result($sqlmes,$z,"anomes"); $sqlusers = mysql_result($sqlmes,$z,"nu_visitas"); $expdate = explode("-",$sqldate); switch ($expdate[1]) { case "01": $mes = Janeiro; break; case "02": $mes = Fevereiro; break; case "03": $mes = Março; break; case "04": $mes = Abril; break; case "05": $mes = Maio; break; case "06": $mes = Junho; break; case "07": $mes = Julho; break; case "08": $mes = Agosto; break; case "09": $mes = Setembro; break; case "10": $mes = Outubro; break; case "11": $mes = Novembro; break; case "12": $mes = Dezembro; break; } echo' <tr class="row-a"> <td class="first">'.$mes.' de '.$expdate[0].'</td> <td>'.$sqlusers.'</td> </tr>'; }se quiser mover novamente para o php fique avontade, creio eu que lá este tópico se encaixa melhor para pesquisas.. abraços.. Editado Maio 26, 2008 por Vampyro Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 26, 2008 Denunciar Share Postado Maio 26, 2008 Se foi atendido, não há porque mover. Tópico Fechado. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RodrigoGomes
olá pessoal..
eu não to conseguindo fazer um script.. que me mostre o número de visitas que teve cada mês, exemplo:
Abril de 2008: 200 visitantes
Março de 2008: 320 visitantes
Fevereiro de 2008: 260 visitantes
Janeiro de 2008: 410 visitantes
tendo no banco de dados: id, data, ip, pagina
o que já tenho feito é:
porem travei ai..
se alguém tiver alguma idéia de como eu poderia fazer isso, ficaria muito grato.. abraços..
Editado por VampyroLink para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados