free4k 0 Denunciar post Postado Maio 11, 2015 Olá gente! Tenho uma tabela MySql com o registro dos downloads feitos por cada postagem (valores totais, não semanais). Preciso de um contador de downloads semanal, para mim saber quantos downloads de cada postagem foram feitos em cada semana. Tenho conhecimento básico de PHP. Como posso fazer? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 11, 2015 A primeira coisa a se fazer é efetuar uma pesquisa junto a Google/Bing, tentar elaborar a primeiras linhas do algoritmo, pois o que pode ser simples para você, pode ser muito amplo e complexo para a comunidade, ou vice versa. Se tiver alguma dúvida poste o script após elaborar as primeiras linhas do seu algoritmo. E se mesmo assim, ainda não compreendeu como funciona um fórum, de uma lida no post abaixo: http://forum.imasters.com.br/topic/375800-orientaes-para-uma-boa-participao/ :thumbsup:E para falar, que não tem exemplos no Google. https://goo.gl/k9Nswb Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 12, 2015 A primeira coisa a se fazer é efetuar uma pesquisa junto a Google/Bing, tentar elaborar a primeiras linhas do algorítimo, pois o que pode ser simples para você, pode ser muito amplo e complexo para a comunidade, ou vice versa. Se tiver alguma dúvida poste o script após elaborar as primeiras linhas do seu algorítimo. E se mesmo assim, ainda não compreendeu como funciona um fórum, de uma lida no post abaixo: http://forum.imasters.com.br/topic/375800-orientaes-para-uma-boa-participao/ :thumbsup: O contador eu sei fazer, só quero saber como faço para cada semana pegar as informações. Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Maio 12, 2015 http://www.plumislandmedia.net/mysql/sql-reporting-time-intervals/ Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 12, 2015 http://www.plumislandmedia.net/mysql/sql-reporting-time-intervals/ Como vou utilizar este código? Não entendi muito bem. No código que eu fiz ele faz um update no MySql a cada download do arquivo que o usuário faz, somando + um no valor. SELECT FROM_DAYS(TO_DAYS(sales_time) -MOD(TO_DAYS(sales_time) -1, 7)) AS week_beginning, SUM(gross) AS total, COUNT(*) AS transactions FROM sales GROUP BY FROM_DAYS(TO_DAYS(sales_time) -MOD(TO_DAYS(sales_time) -1, 7)) ORDER BY FROM_DAYS(TO_DAYS(sales_time) -MOD(TO_DAYS(sales_time) -1, 7)) Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Maio 12, 2015 Tchê, vamos pensar um pouco, se a sua modelagem atual apenas adiciona +1 a cada download, como você espera separar isto por dias/semanas/meses/whatever? Não dá né... então, primeiro você terá que montar uma tabela para controlar os downloads, pode ser por dia mesmo, a partir disto você consegue montar o relatório. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 12, 2015 Então se já sabe, fica fácil né, mas não com essa modelagem de clique=clique+1 O correto é como mencionado no post #6, ir armazenando os cliques em outra tabela e data Depois só somar SELECT SUM(campo) as total FROM tabela WHERE yearweek(`datetime`) = yearweek(curdate()); Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 12, 2015 Pensei em usar a função date() do PHP para poder saber o dia da semana, se o dia fosse sábado o contador zeraria, mas não daria muito certo. Como seria essa table? Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 12, 2015 Postemos quase ao mesmo tempo, de uma olhada no post #7 Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 12, 2015 Postemos quase ao mesmo tempo, de uma olhada no post #7 Agora vi, estava fazendo uns testes. Então tenho que criar uma tabela pra gravar a id do post e a data do clique, vai criar um registro a cada clique, isso? A data completa ou só dias e/ou semana? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 12, 2015 Data do tipo Datetime. Exemplo 2015-05-11 22:06:41 CREATE TABLE `NewTable` ( `id` int(11) NOT NULL AUTO_INCREMENT , `id_down` int(11) NULL DEFAULT NULL , `data` datetime NULL DEFAULT NULL , PRIMARY KEY (`id`) ); No insert INSERT INTO `NewTable` (`id_down`, `data`) VALUES ('{$id_down}',NOW()); Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 12, 2015 Olá, fiz o que me disse, ficou assim:Tentei fazer dessa forma para testar, porém não funcionou: require("conexao.php"); $conn = new Conexao(); $sql = mysql_query("SELECT SUM(data) as total FROM downloads WHERE yearweek('datetime') = yearweek(curdate())"); while($ln = mysql_fetch_array($sql)){ $id = $ln['id_post']; echo $id . "<br/>"; } Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 12, 2015 yearweek('datetime') Coloque o nome do campo, era só um exemplo SELECT SUM(`data`) as total FROM downloads WHERE yearweek(`data`) = yearweek(curdate()) Compartilhar este post Link para o post Compartilhar em outros sites
BlackMix 15 Denunciar post Postado Maio 12, 2015 falta mais um campo aí.. coloca downloads int e vai contando os downloads dessa tal data.. ops.. vi que o id_post é do download ou do arquivo ? Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 12, 2015 Williams Duarte, fiz isso, porém está aparecendo um erro, que diz que "id_post", de "$ln['id_post'];" está indefinido. AnimesMix, o id_post é a id da postagem, através da id vou pegar as outras informações. Neste código cada clique gera um registro no MySql. Agora, pensando bem, isso vai encher minha tabela, criando milhares de registros. Compartilhar este post Link para o post Compartilhar em outros sites
BlackMix 15 Denunciar post Postado Maio 12, 2015 eu acho melhor voce usar PDO no seu sistema.. e pelo que estou vendo aí hmmm acho que está meio confuso essa contagem o_O" eu tenho umas bases de fazer somas de posts e downloads no meu site mas ainda não fiz por dia ou semana.. nesse seu exemplo aí como voce quer eu faria de outra maneira.. no mesmo campo do arquivo download eu colocaria a data lá.. é mais viavio. Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 12, 2015 Adicionei a contagem a tabela, ficou assim: Porém o $ln[] não está funcionando. Será que fiz algo errado? require("conexao.php"); $conn = new Conexao(); $sql = mysql_query("SELECT SUM('data') as total FROM downloads WHERE yearweek('data') = yearweek(curdate())"); while($ln = mysql_fetch_array($sql)){ $id = $ln['count']; echo $id . "<br/>"; } Compartilhar este post Link para o post Compartilhar em outros sites
BlackMix 15 Denunciar post Postado Maio 12, 2015 faça um teste aí.. para contar os downloads faça uma página redirecionada quando clicar no download com o id do post aí fica primeira. erro aqui >> http://puu.sh/hL5xb/19017da61f.png tire as aspas LoL $sql = mysql_query("SELECT SUM(count) as total FROM downloads WHERE yearweek(data) = yearweek(curdate())"); LoL aqui fica assim >> $id = $ln['total']; Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 12, 2015 Coloquei 'total' apareceu 40301024366060. Está certo? Compartilhar este post Link para o post Compartilhar em outros sites
BlackMix 15 Denunciar post Postado Maio 12, 2015 está somando tudo dessa tabela.. colocar where id do post e AND yearweek(data) = yearweek(curdate()) eu faço assim.. http://puu.sh/hL6uw/ee3e6df3ae.png mas vou modificar para mostrar por dia depois.. graças a voce kkk Compartilhar este post Link para o post Compartilhar em outros sites