Ir para conteúdo

POWERED BY:

Arquivado

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

formigoni

[Resolvido] Contador de Visitas

Recommended Posts

Bom dia pessoal do fórum.

Preciso de uma ajuda pra entender o erro que está acontecendo.

Tenho minhas páginas hospedadas no locaweb e fiz um contador de acesso simples e localmente ele funciona, mas quando envio o script para o servidor está me acusando um erro.

 

O script é esse:

 


		include "config.php"; 	

	$consultaAcesso = @mysql_query("select * from acesso where data_acesso = now()")
	or die ("Erro realizando Consulta: " . @mysql_error());
	$acesso = @mysql_fetch_assoc($consultaAcesso);
	
	if (empty($acesso)) {
		$sql = "insert into acesso (data_acesso, numero_acesso) values (now(), 1)";
		@mysql_query($sql) or die ("Erro Adicionando acesso: " . @mysql_error());
	} else {
		$sql = "update acesso set numero_acesso = numero_acesso + 1 where data_acesso = now()";
		@mysql_query($sql) or die ("Erro Alterando acesso: " . @mysql_error());
	}
	
	$consultaAcesso = @mysql_query("select sum(numero_acesso) acessos from acesso")
									  or die("Erro realizando consulta: " . @mysql_error());
	$acesso = @mysql_fetch_assoc($consultaAcesso);
	$TotalVisitantes = $acesso['acessos'];
	$TotalVisitantes = str_pad($TotalVisitantes, 8, "0", STR_PAD_LEFT);

A estrutura de minha tabela é essa:

 

CREATE TABLE `acesso` (
  `data_acesso` date NOT NULL default '0000-00-00',
  `numero_acesso` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`data_acesso`),
  KEY `data_acesso` (`data_acesso`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

O erro é que ao verificar a data com o comando "now" ele me dá esse erro:

"Erro Adicionando acesso: Duplicate entry '2009-03-02' for key 1"

 

O script verifica a data, se a data não existe ele inclui o acesso, mas se a data já existe ele deveria simplesmente fazer um update no banco.

 

Se alguém puder me ajudar, pois eu mesmo não consegui entender esse erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aê pessoal, consegui resolver.

Seguinte, tive que mudar a minha query, agora ela ficou assim:

 

include "config.php";	 

	$consultaAcesso = @mysql_query("select * from acesso where [b]date_format(now(),'%Y-%m-%d')[/b]")
	or die ("Erro realizando Consulta: " . @mysql_error());
	$acesso = @mysql_fetch_assoc($consultaAcesso);
	
	if (empty($acesso)) {
		$sql = "insert into acesso (data_acesso, numero_acesso) values (now(), 1)";
		@mysql_query($sql) or die ("Erro Adicionando acesso: " . @mysql_error());
	} else {
		$sql = "update acesso set numero_acesso = numero_acesso + 1 where [b]date_format(now(),'%Y-%m-%d')[/b]";
		@mysql_query($sql) or die ("Erro Alterando acesso: " . @mysql_error());
	}
	
	$consultaAcesso = @mysql_query("select sum(numero_acesso) acessos from acesso")
									  or die("Erro realizando consulta: " . @mysql_error());
	$acesso = @mysql_fetch_assoc($consultaAcesso);
	$TotalVisitantes = $acesso['acessos'];
	$TotalVisitantes = str_pad($TotalVisitantes, 8, "0", STR_PAD_LEFT);

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.