Ir para conteúdo

Arquivado

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

MGC

[Resolvido] Total de cliques e visitantes

Recommended Posts

Boas tutoriais,

 

Tenho uma pequena duvida no meu site.

o meu site é de classificados gratis...!

Estou adicionando um pequeno codigo para que os visitantes possam saber:

- numero de anuncios ativos;

- quantos subscritores existem;

- total de visitantes no site;

- total de cliques existiram ate agora.

 

No que se refere aos anuncios ativos e subscritores esta tudo ok.

Segue o codigo:

 

include.php

 

/get the total ads listed ::: anuncios ativos

$usercount = "select * from class_posts where (status = 'active' or status = 'featured')";

$usercountqry = mysql_query($usercount) or die(mysql_error());

$usercountline = mysql_num_rows($usercountqry);

 

//get the total agents listed ::: subscritores

$usercount2 = "select * from class_agents";

$usercountqry2 = mysql_query($usercount2) or die(mysql_error());

$usercountline2 = mysql_num_rows($usercountqry2);

 

 

index.php

 

<tr><td class="lentele" style="padding-right: 10px;">Subscritores Registados  <b><?=$usercountline2?></b></td></tr>

<tr><td class="lentele" style="padding-right: 10px;">Anuncios Ativos  <b><?=$usercountline?></b></td></tr>

 

 

Agora quero adicionar as funções, como referi... total de visitantes no site e total de cliques existiram ate agora.

 

O codigo que uso é:

 

include.php

 

//get the total visits :: total cliques|visitas nos anuncios

$usercount3 = "select * $visits from class_posts ";

$usercountqry3 = mysql_query($usercount3) or die(mysql_error());

$usercountline3 = mysql_num_rows($usercountqry3);

 

index.php

 

<tr><td class="lentele" style="padding-right: 10px;">Cliques  <b><?=$usercountline3?></b></td></tr>

 

(cada anuncio possui um relatório de visitas = $visits . O que pretendo é o total. Ele dá alguma coisa, mas nao tem nada a ver com os valores totais que somei manualmente.)

 

Outra pretensão é o numero de visitantes no site em geral.

Como poderei inserir esse modulo, sem que as pessoas tenham que registar-se, e que seja similar ao anterior?

 

Obrigado pela vossa disponibilidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Recomendo que você coloque um código na página, que insere no banco de dados uma linha com o id do usuário que acessou o anuncio.

Dai na hora de exibir o total de cliques, é só puxar com mysql_num_rows() onde o id do usuário no banco seja o mesmo que ele está usando para logar.

 

Para evitar de uma pessoa visitar mais de uma vez, você faz antes do código, uma consulta a esta tabela, onde você busca pelo id do usuario junto com o da notícia. Se der alguma coisa, você nao faz nada, pois ele já visitou. Se nao deu resultado, executa o script que envia ao banco. :]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Recomendo que você coloque um código na página, que insere no banco de dados uma linha com o id do usuário que acessou o anuncio.

Dai na hora de exibir o total de cliques, é só puxar com mysql_num_rows() onde o id do usuário no banco seja o mesmo que ele está usando para logar.

 

Para evitar de uma pessoa visitar mais de uma vez, você faz antes do código, uma consulta a esta tabela, onde você busca pelo id do usuario junto com o da notícia. Se der alguma coisa, você nao faz nada, pois ele já visitou. Se nao deu resultado, executa o script que envia ao banco. :]

 

Boas JoaoGosmao

 

Eu tenho um codigo do numero de visitantes por cada anuncio. Esse codigo é visivel para o anunciante pois controla o feedback do anuncio.

O que pretendo é puxar o total dos visitantes, de todos os anuncios para o publico ver.

codigo do numero visitas na conta do anunciante:

 

<td width="6%" align="center" class="manageListing"><?=$line[visits]?></td>

 

recorrendo á pagina base:

//get the info

$q1 = "select * from class_posts where AgentID = '$_SESSION[AgentID]' AND status != 'featured' AND status != 'expired' ORDER BY status;";

$r1 = mysql_query($q1) or die(mysql_error());

$q2 = "select * from class_posts where AgentID = '$_SESSION[AgentID]' AND status = 'featured';";

$r2 = mysql_query($q2) or die(mysql_error());

$q3 = "select * from class_posts where AgentID = '$_SESSION[AgentID]' AND status = 'expired';";

$r3 = mysql_query($q3) or die(mysql_error());

//$a1 = mysql_fetch_array($r1);

 

pagina publica do anuncio:

//update the stats

$q1 = "update class_posts set visits = visits + '1' where PostID = '$_GET[id]' ";

mysql_query($q1) or die(mysql_error());

 

O que pretendo é o codigo correcto para que fique operacional. Já tentei mas nada....!

Obrigada pela atenção....!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser colocar para todos verem, apenas tire o AgentID = '$_SESSION[AgentID]'

Com ele, faz puxar somente o número para o Usuário

Tirando ele, a consulta nao leva em conta o AgentID (creio eu que seja o id do usuario).

Fazendo isso pode dar certo.

Tenta ai e manda os resultados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser colocar para todos verem, apenas tire o AgentID = '$_SESSION[AgentID]'

Com ele, faz puxar somente o número para o Usuário

Tirando ele, a consulta nao leva em conta o AgentID (creio eu que seja o id do usuario).

Fazendo isso pode dar certo.

Tenta ai e manda os resultados.

 

Agradeço a tua atenção, mais uma vez.

O codigo esta ok, pois isso está noutra funcionalidade.

O que pretendo é somar todos os $visits de todos os anuncios PostID , e publica-los na pagina principal.

 

Para saber os Utilizadores e Anuncios consegui, conforme enunciei. Agora como fazer o total de visitas...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, se tu tem uma tabela com o registro de todas as visitas de usuários para pedidos, logicamente você usa uma consulta SQL para verificar o banco de dados, e mostrar o número de registros encontrados, que seria as visitas.

Agora, se você tirar a cláusula WHERE que filtra o ID do usuário, você terá as visitas de todos os anúncios.

 

Se o problema for visitas por todo site, pode incluir um arquivo no cabeçalho de cada página, e realizar o mesmo procedimento que envia ao banco e imprimi a quantidade de visitas para anuncios.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, se tu tem uma tabela com o registro de todas as visitas de usuários para pedidos, logicamente você usa uma consulta SQL para verificar o banco de dados, e mostrar o número de registros encontrados, que seria as visitas.

Agora, se você tirar a cláusula WHERE que filtra o ID do usuário, você terá as visitas de todos os anúncios.

 

Se o problema for visitas por todo site, pode incluir um arquivo no cabeçalho de cada página, e realizar o mesmo procedimento que envia ao banco e imprimi a quantidade de visitas para anuncios.

 

Boas tutoriais,

Agradeço a preciosa ajuda do João,

Em referencia ao comentário.... " Agora, se você tirar a cláusula WHERE que filtra o ID do usuário, você terá as visitas de todos os anúncios. " ... o WHERE existe na base da pagina info.php. Se retirar essa funcionalidade vai quebrar o raciocionio de todo o site.

 

No caso concreto da soma dos visitantes é que me dá dores de cabeça. Julgava eu que seria uma coisa simples, mas estou a sentir umas dores de cabeça em dar a volta ao assunto.

Não haverá outra maneira de que seja possivel percorrer todos os PostID (onde é inserido o anuncio, o nº anuncio, texto, etc, e contador de visitas), mais concretamente $visits e ele apresente o total de visitas? É que na logica o raciocinio esta ok, mas os valores que me apresenta na pagina principal estao errados.

Sei que é massudo pedir apoio, mas agradecia a ajuda de quem tenha ideias frescas, pois a minha cabeça ja esquenta.......!

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, acho que estou começando a interpretar corretamente sua dúvida. Se eu estiver, acredito que você tenha na tabela de anuncios, o número total das visitas. Se for o caso, da forma qe falei, retornaria o numero de anuncios. acho que resolveria o seu caso, usar SELECT SUM(nome da tabela de pedidos) where......

tenta isso agora

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, acho que estou começando a interpretar corretamente sua dúvida. Se eu estiver, acredito que você tenha na tabela de anuncios, o número total das visitas. Se for o caso, da forma qe falei, retornaria o numero de anuncios. acho que resolveria o seu caso, usar SELECT SUM(nome da tabela de pedidos) where......

tenta isso agora

 

Boas Gusmao. Obrigado pela tua atenção.

Tentei fazer assim:

 

//get the total visits

$usercount3 ="select sum(visits) from class_posts where PostID = '$visits' ";

$usercountqry3 = mysql_query($usercount3) or die(mysql_error());

$usercountline3 = mysql_num_rows($usercountqry3);

 

Deu um numero, mas era 1. LOL!!!!

 

Posso não ter explicado como deve ser, e se foi o caso desculpem!

 

O site de classificados tem duas funções:

AgentID que corresponde aos subscritores.

O AgentID pode ou não querer colocar o anuncio. Quando coloca um anuncio é criado o PostID. Esse PostID será identificado como parte do anunciante (AgentID).

No PostID é criado/guardado tudo o que é pertença do anuncio. Numero do Anuncio, Nome do Anuncio, texto, fotos, video, data de expiração, e o numero de cliques que esse anuncio teve ate agora.

Ora existindo dezenas de AgentID(anunciantes) que possuem dezenas de PostID (anuncios) a lógica seria esta:

 

//get the total visits

$usercount3 ="SELECT * $visits from class_posts";

$usercountqry3 = mysql_query($usercount3) or die(mysql_error());

$usercountline3 = mysql_num_rows($usercountqry3);

 

Logica: Iria percorrer todos os PostID que existe nessa tabela, somando todos os $visit que existem e apresentar no Index.php o total de cliques que os PostID, de todos os AgentID obtiveram.

 

Mas mesmo nesta funcionalidade, ele apresenta um resultado de 200 visitantes/cliques, quando tenho milhares no somatório manual.

 

Outra curiosidade, como não conta os cliques, mas qd vou adicionar um anuncio ele soma mais 1 (idependentemente de visitar varias vezes) Só soma mais 1 qd adiciono um anuncio... Não percebo por que faz isto. Os outros funcionam bem....!

Se quiseres, posso colocar o codigo todo de ambas as pastas e poderás analisar, ou então enviar por correio electronico.

Mais uma vez obrigado pela atenção, amigo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente de navegadores diferentes. Pelo que acho, seu script deve criar cookies ou sessoes quando é acessado a pag. Se nao der nada de outro navegdor, deve ter problema ai. qqer duvida, fala ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente de navegadores diferentes. Pelo que acho, seu script deve criar cookies ou sessoes quando é acessado a pag. Se nao der nada de outro navegdor, deve ter problema ai. qqer duvida, fala ai

 

Boas João,

 

Ja consegui resolver a situação.

Para quem deseja segue o codigo:

 

//get the total visits

$usercount3 = "select sum(visits) as totalvisitas from class_posts ";

$usercountqry3 = mysql_query($usercount3) or die(mysql_error());

while ($row = mysql_fetch_assoc($usercountqry3)) {

$total = $row["totalvisitas"];

}

 

if(!$total) $total = 0;

 

vai refletir no index.php

 

<tr><td class="lentele" style="padding-right: 10px;">Cliques|Visitas  <b><?=$total ?></b></td></tr>

 

Abraços e obrigado pela atenção.

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.