Jump to content
Fórum Script Brasil
  • 0

Total de cliques ....


Michel_pt

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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..

Edited by Roger Mauricio Takemiya
Link to comment
Share on other 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 to comment
Share on other 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"

Edited by Roger Mauricio Takemiya
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...