formigoni 0 Denunciar post Postado Março 2, 2009 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
formigoni 0 Denunciar post Postado Março 2, 2009 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