Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos, preciso de um contador de views por ID (_get[id]) bem simples. Podem me ajudar?
Não quero gravar em txt, mas sim no BD
Amigo, então é mais fácil ainda, crie numa tabela do BD um campo do tipo int e na página que quiser fazer a contagem, faça o seguinte UPDATE no BD:
"UPDATE tabela SET campo = (campo + 1)"Lol, fiz assim e não gravou:
$sql3 = "UPDATE `visitas` SET `pageviews` = (`pageviews` + 1), `usuario` = '".$_GET['usuario']."', `data` = '".$data."'";$contador = mysql_query("SELECT * FROM visitas WHERE pageviews");
while($exibe = mysql_fetch_array($contador)){
echo $exibe['pageviews'];
$sql3 = "UPDATE `visitas` SET `pageviews` = (".$exibe['pageviews']." + 1), `usuario` = '".$_GET['usuario']."', `data` = '".$data."'";
}
tenta algo semelhante. --n testei
Isso não faz sentido oO
>
Lol, fiz assim e não gravou:
e qual erro apareceu ?
você quer atualizar qual registro ? era melhor que tivesse um WHERE nessa query ne?!
leia:
http://forum.imasters.com.br/index.php?/topic/375800-orientacoes-para-uma-boa-participacao/
então ta uai, não ta mais aqui quem falou.
cara tenta o que eu falei. .-.
Assim tb não gravou (não aparece erros, simplesmente não grava:
$sql3 = "UPDATE `visitas` SET `pageviews` = (`pageviews` + 1), `data` = '".$data."' WHERE `usuario` = '".$_GET['usuario']."'";leia o link que postei.
habilite as mensagens de erro, e adicione um or die( mysql_error() ); no final da query para debug
Já tinha feito tudo isso. Mesmo assim não grava :(
cara, é dificil agente te ajudar, se você não exibir os erros, e nos mostrar.
$sql3 = "UPDATE `visitas` SET `pageviews` = (`pageviews` + 1), `data` = '".$data."' WHERE `usuario` = '".$_GET['usuario']."'";
echo $sql;
diga oque retornar do echo
e após fazer os procedimentos do topico, diga que erro aparece(sempre faça isso)
Não exibiu erro algum, como já havia dito. Agora, com o echo, exibiu o esperado:
UPDATE visitas SET pageviews = (pageviews + 1), data = '14/01/11' WHERE usuario = 'williancima'
os trechos de código estão todos picotados pelo tópico todo..
mostre exatamente o que você testou. poste o trecho do código correspondente ao teste
Aí está, Beraldo:
$sql3 = "UPDATE `visitas` SET `pageviews` = (`pageviews` + 1), `data` = '".$data."' WHERE `usuario` = '".$_GET['usuario']."'";
mysql_query($sql3) or die( mysql_error() );o campo data é um VARCHAR ou DATE no banco ?
se for date, você precisa converter a string de dd/mm/aa para aaaa-mm-dd
e não precisa desses parenteses ai
Tá estranho... parece correto
vamos lá
$sql3 = "UPDATE visitas SET pageviews = pageviews + 1, data = '".$data."' WHERE `usuario` = '".$_GET['usuario']."'";
echo 'SQL a ser executada: ' . $sql3 . "<br />";
$exec = mysql_query($sql3) or die( 'ERRO: ' . mysql_error() );
var_dump( $exec );
car_dump( mysql_affected_rows );
é para mostrar a SQL final e depois fazer dump do retorno de mysql_query e de mysql_affected_rows, que diz quantos registros foram afetados pela query
poste a saída
SQL a ser executada: UPDATE visitas SET pageviews = pageviews + 1, data = '14/01/11' WHERE usuario = 'williancima'
bool(true)
Fatal error: Call to undefined function car_dump() in /home/theimage/public_html/portf.php on line 25
me diga:
>
o campo data é um VARCHAR ou DATE no banco ?
troque:
car_dump( mysql_affected_rows );
por:
var_dump( mysql_affected_rows() );
Deu isso:
SQL a ser executada: UPDATE visitas SET pageviews = pageviews + 1, data = '14/01/11' WHERE usuario = 'williancima'
bool(true) int(0)
ops, pequeno erro de digitação :P
ou seja, a SQL é executada corretamente, mas nenhum registro é atualizado. verifique se existe um usuario "williancima". Seu código não contém erros
Sim, existe, tudo funciona perfeitamente :( O tipo e atributos dos campos não interferem na gravação?
>
Sim, existe, tudo funciona perfeitamente :(
Tudo o quê?
Não entendi o que quis dizer: se o contador não funciona, o que funciona perfeitamente?
>
O tipo e atributos dos campos não interferem na gravação?
Como o Willian Bruno perguntou várias vezes: o campo data é varchar ou date?
Apesar de que o MySQL reclamaria se estivesse com tipo errado.
Seu código PHP não tem erros
Execute essa consulta no shell do MySQL, ou via PHPMyAdmin. Veja se surte efeito
Um contador bem simples
:)