Ir para conteúdo

POWERED BY:

Arquivado

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

sacjamm

Contador de visitas, por período

Recommended Posts

Olá prezados, andei pesquisando aqui no fórum e não encontrei nada aqui referente ao que eu quero, então decidi postar, para que os amigos pudessem me ajudar.

Então, estou criando um sistema de contador de visitas e a tabela é a seguinte:


CREATE TABLE IF NOT EXISTS `go_siteviews` (
  `siteviews_id` int(11) NOT NULL AUTO_INCREMENT,
  `siteviews_date` date NOT NULL,
  `siteviews_users` decimal(10,0) NOT NULL,
  `siteviews_views` decimal(10,0) NOT NULL,
  `siteviews_pages` decimal(10,0) NOT NULL,
  `online_ip` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`siteviews_id`),
  KEY `idx_1` (`siteviews_date`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=117 ;

Aqui vai os registros que estão inseridos nessa tabela:

INSERT INTO `ws_siteviews` (`siteviews_id`, `siteviews_date`, `siteviews_users`, `siteviews_views`, `siteviews_pages`, `online_ip`) VALUES
(113, '2016-09-18', '247', '991', '1724', '66.249.64.175'),
(114, '2016-09-19', '204', '908', '1609', '179.124.16.8'),
(115, '2016-09-20', '145', '713', '1291', '187.21.233.154'),
(116, '2016-09-21', '279', '1109', '1935', '187.37.94.13'); 


Sendo que o campo siteviews_views é o campo que eu estou fazendo a contagem de visitas total do site.

E agora eu quero fazer a contagem pegando pelos ultimos 3 meses, tipo:

Junho | Julho e Agosto

Quero que me retorne apenas as visitas total referente a cada data, amigos, não tem só esse registro na tabela, tenho muitos registros, esses registros é apenas pra mostrar como está.

Então, eu queria uma solução via SQL, para retornar as visitas referente a cada data.

Utilizo meus códigos PHP dessa forma:

$read = new Read;

$read->FullRead("SELECT SUM(siteviews_views) AS views FROM ws_siteviews WHERE siteviews_date = CURDATE()");
$Hoje = $read->getResult()[0]->views;

$read->FullRead("SELECT SUM(siteviews_views) AS views FROM ws_siteviews WHERE siteviews_date BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())");
$Mes = $read->getResult()[0]->views;

$read->FullRead("SELECT SUM(siteviews_views) AS views FROM ws_siteviews WHERE siteviews_date BETWEEN DATE_FORMAT(CURDATE(), '%Y-01-01') AND DATE_FORMAT(CURDATE(), '%Y-12-31')");
$Ano = $read->getResult()[0]->views;

Agradecimentos,

Alisson Maciel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Últimos 3 meses

WHERE `field` >= DATE_FORMAT( ADDDATE( NOW( ), INTERVAL -3
MONTH ), '%Y-%m-%d' ) 

Você quer a contagem dos 3 meses juntos ou de cada um deles (não entendi)?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coelho, aparentemente, sua solução resolveu o meu problema, bem simples, não sei se está retornando a soma corretamente, mais funcionou aqui e está bom, tópico resolvido.

Obrigado!

Tenho um outro problema em outra aplicação, um sistema de filtro por data, se puder me ajudar, irei postar a dúvida aqui.

Até a próxima!

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.