MGC 0 Denunciar post Postado Março 20, 2012 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
JoaoGusmao 2 Denunciar post Postado Março 20, 2012 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
MGC 0 Denunciar post Postado Março 20, 2012 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
JoaoGusmao 2 Denunciar post Postado Março 20, 2012 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
MGC 0 Denunciar post Postado Março 20, 2012 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
JoaoGusmao 2 Denunciar post Postado Março 20, 2012 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
MGC 0 Denunciar post Postado Março 21, 2012 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
JoaoGusmao 2 Denunciar post Postado Março 21, 2012 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
hinom 5 Denunciar post Postado Março 21, 2012 o ideal mesmo, se for negociar num âmbito formal, é que o "contador de acessos" seja auditorado.. Compartilhar este post Link para o post Compartilhar em outros sites
MGC 0 Denunciar post Postado Março 21, 2012 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
JoaoGusmao 2 Denunciar post Postado Março 21, 2012 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
MGC 0 Denunciar post Postado Março 21, 2012 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