Ir para conteúdo
Fórum Script Brasil
  • 0

Total de cliques ....


Michel_pt

Pergunta

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&nbsp;&nbsp;<b><?=$usercountline2?></b></td></tr>

<tr><td class="lentele" style="padding-right: 10px;">Anuncios Ativos&nbsp;&nbsp;<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&nbsp;&nbsp;<b><?=$usercountline3?></b></td></tr>

(cada anuncio possui um relatório na base de dados do numero de visitas => $visits . O que pretendo é o total/somatório de todas os anuncios. Ele dá alguma coisa (203), mas não tem nada a ver com os valores totais que somei manualmente (2530).)

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.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Cara estou meio confuso.. mais vamos lá...

Aonde você faz

$usercount3 = "select * $visits from class_posts ";
Faz assim..
$query = "SELECT SUM($visits) FROM class_posts";
Ele vai somar a coluna "$visits" q seria a quantidade de views de cada post? e te retornaria essa soma... Outra coisa, se você não utiliza os dados para nada nas duas primeiras consultas q você citou.. use count() na query invez da função mysql_num_rows Invez de ser assim..
$usercount = "select * from class_posts where (status = 'active' or status = 'featured')";
troque por
$query = "SELECT COUNT(*) from class_posts where (status = 'active' or status = 'featured')";

Assim ele já retorna q quantidade de linhas, e não os dados dos post... para só depois, dentro do PHP, calcular as linhas...

Agora para controlar o número de visitas no site, você deverar utilizar uma sessão, que deve ser iniciada com o valor do ip, do seu usuário... E criar uma função que verifica essa sessão, por exemplo, se a sessão não tiver sido iniciada e o IP desse cliente, não existir no banco de dados nas ultimas 24 horas por exemplo.. você inicia ela e salva no banco o IP do cliente em um log, e em uma tabela, visitas, por ex, você registra a visita..

Editado por Roger Mauricio Takemiya
Link para o comentário
Compartilhar em outros sites

  • 0
Cara estou meio confuso.. mais vamos lá...

Aonde você faz

$usercount3 = "select * $visits from class_posts ";
Faz assim..
$query = "SELECT SUM($visits) FROM class_posts";
Ele vai somar a coluna "$visits" q seria a quantidade de views de cada post? e te retornaria essa soma... Outra coisa, se você não utiliza os dados para nada nas duas primeiras consultas q você citou.. use count() na query invez da função mysql_num_rows Invez de ser assim..
$usercount = "select * from class_posts where (status = 'active' or status = 'featured')";
troque por
$query = "SELECT COUNT(*) from class_posts where (status = 'active' or status = 'featured')";

Assim ele já retorna q quantidade de linhas, e não os dados dos post... para só depois, dentro do PHP, calcular as linhas...

Agora para controlar o número de visitas no site, você deverar utilizar uma sessão, que deve ser iniciada com o valor do ip, do seu usuário... E criar uma função que verifica essa sessão, por exemplo, se a sessão não tiver sido iniciada e o IP desse cliente, não existir no banco de dados nas ultimas 24 horas por exemplo.. você inicia ela e salva no banco o IP do cliente em um log, e em uma tabela, visitas, por ex, você registra a visita..

Caro Roger,

Obrigado pela atenção...

Fiquei um pouco confuso na questao do $query.

Como salientei inicialmente as duas funcionalidades estao a funcionar bem.

Agora a questão do somatório das visitas totais é que me dá dores de cabeça.....!!!!!!!!

Fiquei na duvida do

$query = "SELECT SUM($visits) FROM class_posts";

tendo em conta que ele tem

//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);

indo apresentar os resultados no index.php atraves do

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

Como poderei alterar isso????

Sobre o Ip, do numero de visitantes poderei encaminhar um codigo que possuo para contar os banners, podendo assim adaptar no site em geral...

Obrigado pela disponibilidade...!

Link para o comentário
Compartilhar em outros sites

  • 0

A segunda dicar seria mais para um refactor no seu código Michel,

Já sobre conseguir o total de visitas

..

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

a função SUM(), do mysql, irá percorrer todos os registros da tabela class_posts... somando os valores da coluna "$visits".. Se no caso a coluna for por exemplo um int.. ai ele irá apenas retornar um registro, contendo o resultado dessa soma....

você pode fazer assim..

$usercount3 = "select sum(nome_coluna_que_guarda_o_total_de_visitas_de_cada_class_post) 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;
para mostrar
<tr><td class="lentele" style="padding-right: 10px;">Cliques&nbsp;&nbsp;<b><?=$total ?></b></td></tr>

mas você precisa confirmar comigo, qual é o valor de "$visits"

Editado por Roger Mauricio Takemiya
Link para o comentário
Compartilhar em outros sites

  • 0
A segunda dicar seria mais para um refactor no seu código Michel,

Já sobre conseguir o total de visitas

..

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

a função SUM(), do mysql, irá percorrer todos os registros da tabela class_posts... somando os valores da coluna "$visits".. Se no caso a coluna for por exemplo um int.. ai ele irá apenas retornar um registro, contendo o resultado dessa soma....

você pode fazer assim..

$usercount3 = "select sum(nome_coluna_que_guarda_o_total_de_visitas_de_cada_class_post) 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;
para mostrar
<tr><td class="lentele" style="padding-right: 10px;">Cliques&nbsp;&nbsp;<b><?=$total ?></b></td></tr>

mas você precisa confirmar comigo, qual é o valor de "$visits"

Boas Roger,

Antes de mais obrigada pela atenção e ajuda.

Em relação á questoa do valor $visits é um int(10).

Mas adianto que já testei e ficou .... EXCELENTE.!!!

Obrigada cara Roger. Nem imagina o que percorri para me explicarem. Já perdia esperanças.

Agora o proximo passo será integrar quem esta online : Registados ..... | Visitantes ....

Isso será pelo IP...?!

Julgo que tenho um codigo para os Banners e colocarei a duvida caso não consiga.!

Mais uma vez agradecido pela ajuda.

Abraços e um até já....!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...