Ir para conteúdo

Arquivado

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

  • 0
Jack Oliveira

CONTADOR DE VISITAS DE PAGINA POR ID

Pergunta

Ola pessoal

alguém poderia me ajudar pois quero por um contador de visitas em minha pagina de listagem só que quero que o contador faz a contagem

por click

ou seja se a pessoa for atualizar a pagina o contador já não contar novamente, para que ele faz a

contagem novamente a pessoa tem que voltar e clicar no link que direciona para a pagina

acho que estão entendendo o que quero dizer

por ex:

meudoninio.com/listagem.php?id=1

         Total de visitas: 1200

 

meudoninio.com/listagem.php?id=2

                 Total de visitas: 500

 

meudoninio.com/listagem.php?id=3               

Total de visitas: 120

 

 

pois fiz assim só que se atualizar a pagina varias vezes ele faz a contagem 

       Quero que ele apenas faz a contagem se a pessoa visitar a pagina ou seja por click

  ela fazer a contagem só se a pessoa clicar novamente para ir para a pagina onde esta a listagem

 

o link para direcionar a pagina esta assim

Ex:

 <a><href="https://meudominio.com/listagem.php?id=<?php echo "$id" ;?>" target="_blank"></a>

 

 


<!-- SQL-->
CREATE TABLE IF NOT EXISTS `visita` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `visitas` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;



/////////////////////////////////////////////////////

<?php
//Busca na tabela o numero de vezes que a página ja foi visitada

$busca = "Select * FROM visita WHERE id = {$getId}";
$exe = mysql_query($busca);

$resultado = (mysql_fetch_array($exe));

//Pega o numero de visistas que consta na tabela, adiciona mais um e atualiza

$visitantes = $resultado['visitas'] + 1;
$altera = "UPDATE visita SET visitas = '{$visitantes}' WHERE id = '{$getId}'";
$exe1 = mysql_query($altera);

//Faz uma nova busca e retorna o numero de visitas depois da atualização

$exe = mysql_query($busca);
$total = (mysql_fetch_array($exe));
$visitas = $total['visitas'];

    }

?>


<!-- ESTOU CHAMANDO OS NUMERO DE VISITA ASSIM ATÉ AQUI ELE 
TRAZ A QUANTIDADE DE VISITAS PARA CADA PAGINAS-->
   <?php echo 
"Total de Visitas: $visitas"
?>

     Se alguém poderem me ajudar resolver ai como poder fazer o que eu quero ou alterar alguma coisa fico grato

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta


  • Conteúdo Similar

    • Por Arthur74
      Alguém poderia me ajudar a fazer ou dar ideia para esse código(abaixo) salve as informações de visitas em paginas indiniduais ou seja, na ID de cada pagina, ele funciona mais na tabela dele, ele só gera uma ID e eu queria q ele gerasse para cada post e cada um com seu valor de visitas.
       
      Código:
      // Configurações do Script // ============================== $_CV['registraAuto'] = true; // Registra as visitas automaticamente? $_CV['conectaMySQL'] = true; // Abre uma conexão com o servidor MySQL? $_CV['iniciaSessao'] = true; // Inicia a sessão com um session_start()? $_CV['servidor'] = 'localhost'; // Servidor MySQL $_CV['usuario'] = 'root'; // Usuário MySQL $_CV['senha'] = ''; // Senha MySQL $_CV['banco'] = 'teste'; // Banco de dados MySQL $_CV['tabela'] = 'tb_postagens'; // Nome da tabela onde os dados são salvos // ============================== // ====================================== // ~ Não edite a partir deste ponto ~ // ====================================== // Verifica se precisa fazer a conexão com o MySQL if ($_CV['conectaMySQL'] == true) { $_CV['link'] = mysql_connect($_CV['servidor'], $_CV['usuario'], $_CV['senha']) or die("MySQL: Não foi possível conectar-se ao servidor [".$_CV['servidor']."]."); mysql_select_db($_CV['banco'], $_CV['link']) or die("MySQL: Não foi possível conectar-se ao banco de dados [".$_CV['banco']."]."); } // Verifica se precisa iniciar a sessão if ($_CV['iniciaSessao'] == true) { session_start(); } /** * Registra uma visita e/ou pageview para o visitante */ function registraVisita() { global $_CV; $sql = "SELECT COUNT(*) FROM `".$_CV['tabela']."` WHERE `data` = CURDATE()"; $query = mysql_query($sql); $resultado = mysql_fetch_row($query); // Verifica se é uma visita (do visitante) $nova = (!isset($_SESSION['ContadorVisitas'])) ? true : false; // Verifica se já existe registro para o dia if ($resultado[0] == 0) { $sql = "INSERT INTO `".$_CV['tabela']."` VALUES (NULL, CURDATE(), 1, 1)"; } else { if ($nova == true) { $sql = "UPDATE `".$_CV['tabela']."` SET `uniques` = (`uniques` + 1), `pageviews` = (`pageviews` + 1) WHERE `data` = CURDATE()"; } else { $sql = "UPDATE `".$_CV['tabela']."` SET `pageviews` = (`pageviews` + 1) WHERE `data` = CURDATE()"; } } // Registra a visita mysql_query($sql); // Cria uma variavel na sessão $_SESSION['ContadorVisitas'] = md5(time()); } /** * Função que retorna o total de visitas * * @param string $tipo - O tipo de visitas a se pegar: (uniques|pageviews) * @param string $periodo - O período das visitas: (hoje|mes|ano) * * @return int - Total de visitas do tipo no período */ function pegaVisitas($tipo = 'uniques', $periodo = 'hoje') { global $_CV; switch($tipo) { default: case 'uniques': $campo = 'uniques'; break; case 'pageviews': $campo = 'pageviews'; break; } switch($periodo) { default: case 'hoje': $busca = "`data` = CURDATE()"; break; case 'mes': $busca = "`data` BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())"; break; case 'ano': $busca = "`data` BETWEEN DATE_FORMAT(CURDATE(), '%Y-01-01') AND DATE_FORMAT(CURDATE(), '%Y-12-31')"; break; } // Faz a consulta no MySQL em função dos argumentos $sql = "SELECT SUM(`".$campo."`) FROM `".$_CV['tabela']."` WHERE ".$busca; $query = mysql_query($sql); $resultado = mysql_fetch_row($query); // Retorna o valor encontrado ou zero return (!empty($resultado)) ? (int)$resultado[0] : 0; } if ($_CV['registraAuto'] == true) { registraVisita(); } Obs: procurei em todo canto e esse código foi o mais próximo do que eu quero que achei, e nao foi criado por mim, apenas tentei modificar para a tal função que necessito, mais não tive exito! :/
       
      Agradeço a atenção!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.