Ir para conteúdo

POWERED BY:

Arquivado

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

Freelife

Contagem errada

Recommended Posts

Boa tarde galera.

 

A situação é a seguinte.

Estou desenvolvendo um sistema "simples" aqui, e preciso contabilizar as visualizações de cada imagem.

O src da imagem na verdade aponta para um php, que por sua vez grava a visualização e depois devolve a imagem.

 

O problema é que as contagens estão erradas. Tenho 2 banners na mesma página de teste, um no topo e outro no final da sidebar. Olhando isso, a contagem deveria ser a mesma, certo?! Mas está dando diferença.

 

A table no BD era MyISAM e estava com uma diferença muito grande de contagem, aí lembrei da questão do table locking, então mudei a tabela para InnoDB(row locking), mas mesmo assim, agora depois de um tempo ví que está começando a dar diferença na contagem.

 

A diferença começa pequena, de 1, mas conforme o número chega na casa dos 500/800 aí a diferença já vai aumentando pra 10,20... então o problema é quando chegar na casa dos milhares.

 

Será que alguém tem uma idéia do que acontece?

 

Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

 

Poste um trecho do código ou um link para o problema, para podermos lhe auxiliar melhor.

 

Tirando a parte que não importa o resultante é isso aqui que faz toda a ação:

 

<?
$sql = "SELECT * FROM imagem WHERE id = '".$id."'";
$qry = mysql_query($sql);
$rowImagem = mysql_fetch_object( $qry );

// INSERINDO VIEW
unset( $sql, $qry );
$sql = 'INSERT imagem_view (identificador, `data`) VALUES (\''.$id.'\', \''.date('Y-m-d H:i:s').'\')';
$qry = mysql_query($sql);
?>

 

Essa parte é bem simples, não entendo pq está contando errado.

 

 

Tem 2as queries aí pq a do select é usado depois do insert para devolver a imagem verdadeira. Mas isso só depois de gravar a view.

Achei importante colocar também... vai que né...

 

Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como são requisições através do src da tag img, e uma fica no início do código e outra no final. O que pode estar acontecendo são os usuários estarem cancelando a requisição da sua página antes que ela esteja completamente carregada. É algo que pode ocorrer. É inevitável.

 

Faça o teste, carregue a página e cancele antes de abrir o segundo banner. E verifique se contabilizou. Realize alguns testes com tempos variados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como são requisições através do src da tag img, e uma fica no início do código e outra no final. O que pode estar acontecendo são os usuários estarem cancelando a requisição da sua página antes que ela esteja completamente carregada. É algo que pode ocorrer. É inevitável.

 

Faça o teste, carregue a página e cancele antes de abrir o segundo banner. E verifique se contabilizou. Realize alguns testes com tempos variados.

 

Se é assim, alguém sabe um maneira mais confiável de obter essas informações?

Isso vai quebrar as estatísticas do sistema.. rsrsr

 

Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Man tenta fazer da seguinte maneira,

Faz um evento click com jQuery e quando esse evento for disparado envia com ajax

para o PHP com o id da imagem e grava + 1. :thumbsup:

 

$("img").click(function(){

var id = $(this).attr('id');

// aqui sua função ajax enviando o ID para o PHP

});

 

 

<img src="image.jpg" id="1">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Man tenta fazer da seguinte maneira,

Faz um evento click com jQuery e quando esse evento for disparado envia com ajax

para o PHP com o id da imagem e grava + 1. :thumbsup:/>

 

$("img").click(function(){

var id = $(this).attr('id');

// aqui sua função ajax enviando o ID para o PHP

});

 

 

<img src="image.jpg" id="1">

 

 

Mas nesse caso a ação seria diferente né... aí eu estaria contando os cliques e não quantas as visualizações da imagem.

 

Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, porém se ele clicou na imagem.

Automaticamente ele visualizou ela, ou estou errado ?

Não Bru_ce, você está certo, ele viu a imagem e clicou, mas, na verdade não é desse tipo de contagem que preciso.

Preciso das visualizações, mesmo sem clique na imagem.

 

Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi cara, mais essas imagens vão ficar onde ?

e como o usuário vai visualizar elas ?

 

Basicamente é um redirect cara. Tem um link de imagem(src) que aponta pra página php, essa página é responsável pelas contagens. Depois que ela insere os dados no BD, ela devolve a imagem solicitada.

 

Tipo, quando solicito a imagem, pego os dados dela no BD, como o src verdadeiro, depois com php eu só leio ela e faço aparecer.

 

É simples e essa parte está ok.

A única coisa que não tá legal é a contagem mesmo.

 

Abç e vlw pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem um link para ver como é ?

 

Desculpe Bru_ce mas não tenho não, o desenvolvimento é interno.

Mas de qualquer maneira cara, é uma página simples com duas imagens, uma no topo e outro perto do final da página.

 

Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou pensando, qual o problema na sua contagem, se ela está contando corretamente??

 

Veja bem, o usuário visualizou a imagem, contabilizou, não visualizou, não contabilizou. Agora exponha seu real problema. Pois você está querendo alterar uma contagem que, de certa forma, está correta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou pensando, qual o problema na sua contagem, se ela está contando corretamente??

 

Veja bem, o usuário visualizou a imagem, contabilizou, não visualizou, não contabilizou. Agora exponha seu real problema. Pois você está querendo alterar uma contagem que, de certa forma, está correta.

 

Não, não amigo. Eu acho que até certo ponto está correto.

Foi o que mencionei acima. Sei que pode acontecer de uma imagem ter sido carregada e a outra não, mas teria alguma forma confiável de fazer essa contagem sem ser essa forma que fiz?

 

Eu preciso ter a certeza que de os números estão corretos entende?!

 

Por isso a insistência.

 

Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está estranho isso amigo,

A imagem é visualizada assim que o site abre ?

 

Sim, é isso mesmo, assim que a página é aberta a imagem é visualizada.

 

Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, então vamos lá.. tim-tim por tim-tim...

 

1 - Organizacao das pastas

 

teste

imageview

imagens

 

2 - Arquivos

 

teste

index.php

 

imageview/

.htaccess

index.php

 

imagens/

imagem-teste-01.jpg

imagem-teste-02.jpg

 

3 - Download dos arquivos

Arquivos

 

Qualquer dúvida avisem.

 

Acho que o script está +/- comentado.

Para rodar basta configurar o imageview/index.php com usuário e senha do bd no localhost e colocar a pasta teste na raiz do mesmo.

 

É isso aí..

 

espero que possa me ajudar.

 

 

Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigão, faz isso que eu te falei.

Assim que o usuário acessar a página ele vai visualizar a imagem, então você faz um update no Banco.

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.