Ir para conteúdo

POWERED BY:

Arquivado

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

marcosalmeida

Estatística de acesso por notícia

Recommended Posts

Olá pessoal,

Estou precisando de ajuda com meu sitema de notícias.

Preciso registrar o acesso de cada noticia.

Não sei qual método seria mais fácil de implementar. Conta clic ou outr?

 

Como fazer? Uso o google analytics mas ele nao registra acesso por noticia e sim de forma global.

 

Aguem pode me ajudar?

 

MSN: marcos.plus@msn.com

site: www.LesteMais.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando o usuario seleciona a noticia, você pode pegar o codigo da noticia ou algo que individualize ela.

você tem alguma tabela acessos ?

 

Por ex. Tabela ACESSOS, tem os campos:

 

Noticia_Codigo

Titulo_Noticia

Data_Acesso

 

Dae vamos supor que eu cliquei na Noticia: "SP Mais Perto do Tetra Campeonato". (Fato isso daqui né woieowiew)

você Pega como parametro o Codigo desta noticia.

 

E faz um INSERT na tabela ACESSOS, na página da notícia.

Query = "SELECT TITULO_NOTICIA FROM NOTICIAS WHERE NOTICIA_CODIGO = " & Request.QueryString("CodNoticia")
// Executa a Query
// Pega no Titulo da Noticia
Titulo = RS("Titulo_Noticia")
Sql = "INSERT INTO ACESSOS(NOTICIA_CODIGO,TITULO_NOTICIA,DATA_ACESSO) VALUES (3,'"& Titulo &"',GETDATE())"
// Executa a Query

Eu tenho um sistema aqui e faço assim quando preciso ver quem acessou e quando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, fiquei na dúvida!

 

Uso este codigo para exibir a noticia na tela

<%
 rsNoticia__MMColParam = "1"
if (CStr(Request.QueryString("id_noticia")) <> "") then 
  rsNoticia__MMColParam = CStr(Request.QueryString("id_noticia"))
end if
%>
<%
SET rsNoticia = Server.CreateObject("ADODB.Recordset")
rsNoticia.ActiveConnection = MM_LesteMinas_STRING
rsNoticia.Source = "SELECT id_noticia, dsc_titulo_noticia, img_completo_noticia, txt_completo_noticia FROM tblNoticias WHERE id_noticia = "+ rsNoticia__MMColParam+ ""
rsNoticia.CursorType = 0
rsNoticia.CursorLocation = 2
rsNoticia.LockType = 1
rsNoticia.Open()
 rsNoticia_numRows = 0
%>

[b]E chamo as noticias por este:[/b]

<%
SET rsCultura = Server.CreateObject("ADODB.Recordset")
rsCultura.ActiveConnection = MM_LesteMinas_STRING
rsCultura.Source = "SELECT TOP 4 id_noticia, dsc_titulo_noticia, img_chamada_principal, dt_publicacao_noticia FROM tblNoticias where id_categoria_noticia=11 ORDER BY dt_publicacao_noticia DESC"
rsCultura.CursorType = 0
rsCultura.CursorLocation = 2
rsCultura.LockType = 1
rsCultura.Open()
rsCultura_numRows = 0
if not rsCultura.BOF and not rsCultura.EOF then
%>

Aqui é onde mostra o título e link para acessar a pagina da noticia

 <a class="textochamadasbloco" href="conteudo.asp?id_noticia=<%=rsCultura("id_noticia")%>"><%=mid(rsCultura("dsc_titulo_noticia"),1,50)&"..."%></a>

 

DÚVIDA:

Onde eu colocaria aquele codigo?

E só aquelas linhas computaria clics ou acessos? Como ele seria atualizado os acesso na tabela? Não precisaria de uma estrutura de repetição?

Desculpe às perguntas, é que não tenho muita familiaridade com programação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o certo é contar o acesso, visitou a pagina, incrementa + 1 acesso,

 

contador=contador + 1

 

basicamente seria:

<%
'--usa as configurações do Brasil
Session.LCID = 1046

'--gera acesso no bd
Public Function Acessos()

'--primeiro conecta pra buscar o valor que já tem
Set conexao = Server.CreateObject("ADODB.Connection")
'--aqui você define a pasta onde vai estar o banco, no meu caso, estará na pasta dados
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("dados/acessos.mdb")

sql2 = "SELECT * FROM acessos"
Set rs = conexao.Execute(sql2)

'--aqui a variável contador recebe o valor do banco
contador = rs("contador")
'--se o contador for novo, coloca o valor 0 pra ele
if contador = "" then
    contador = 0
end if
'--agora acresce 1 ao valor que já tinha
contador = contador + 1

'--e atualiza o novo valor. Note o WHERE cod = 1 - usamos somente um campo e uma linha
SQL = "UPDATE acessos SET contador = '"&contador&"' WHERE cod = 1"
conexao.Execute(SQL)

'--fecha as conexões e a função
conexao.close
set conexao = nothing
End Function
%>

default.asp. Nela, você vai chamar a página funcoes.asp

<%@LANGUAGE="VBSCRIPT"%>
<!--#INCLUDE FILE="funcoes.asp"-->
<%
'--chama a função que grava o acesso
Acessos()

'--conecta ao access
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("dados/acessos.mdb")

'--agora seleciona o que tiver na tabela (o asterisco significa que tudo lá vai ser pego)
sql3 = "SELECT * FROM acessos"
Set conta = conexao.Execute(sql3)

'--a variável Contar recebe o valor que tem no banco
Contar = conta("contador")

'--e criamos a função PegarImg, que vai escrever o conteudo do bd como uma imagem
Function PegarImg(Contar)
'--verifica quantos caracteres existem no campo pra dividir com a função Mid()
For numero = 1 to Len(Contar)
'--depois, escreve os números com imagens (que você deve ter, no caso, dentro da pasta imagens)
'--a sintaxe da função Mid() é: Mid(variável, índice, e número de caracteres que deve pegar)
Response.Write "<img src=imagens/" & Mid(Contar,numero,1) & ".gif>"
'--recomeça até chegar ao limite do Len(Contar)
Next
'--e fecha a função
End Function
%>
Depois, para escrever o contador na página, você deve colocar o seguinte código (em qualquer lugar da página, desde que dentro do <body> e </body>):

 

<%=PegarImg(Contar)%>

E, no fim da página você deve inserir o código que fecha o banco de dados, para evitar overflow

<%
conexao.close
Set conexao = nothing
%>

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.