Ir para conteúdo

POWERED BY:

Arquivado

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

TeixeiraRamos

Mudar codigo conexao Contador para campo do banco de dados

Recommended Posts

Salve, salve,

Gente tenho duas páginas uma chamada "default.asp" que trabalha com a "funcoes.asp". Elas funcionam normalmente, ou seja, ao abrir aparece o "contador" que é uma "gif." e a tabela tb_acessos é atualizada.

Por favor, observem o código de conexão das páginas. Gostaria de mudar para o código igual a página "testecontador.asp" postada no final. Não sei como fazer.

 

default.asp

<%@LANGUAGE="VBSCRIPT"%>

<!--#INCLUDE FILE="funcoes.asp"-->

<%

Acessos()

 

Set conexao = Server.CreateObject("ADODB.Connection")

conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("dados/info16br.mdb")

 

sql3 = "SELECT * FROM tb_acessos"

Set conta = conexao.Execute(sql3)

 

Contar = conta("contador")

 

Function PegarImg(Contar)

For numero = 1 to Len(Contar)

Response.Write "<img src=imagens/" & Mid(Contar,numero,1) & ".gif>"

Next

End Function

%>

<html>

<body bgcolor="black">

Acessos ao site: <%=PegarImg(Contar)%>

</body>

</html>

 

A funcoes.asp

<%

Session.LCID = 1046

 

Public Function Acessos()

Set conexao = Server.CreateObject("ADODB.Connection")

conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("dados/info16br.mdb")

 

sql2 = "SELECT * FROM tb_acessos"

Set rs = conexao.Execute(sql2)

 

contador = rs("contador")

 

if contador = "" then

contador = 0

end if

 

contador = contador + 1

 

SQL = "UPDATE acessos SET contador = '"&contador&"' WHERE cod = 1"

conexao.Execute(SQL)

 

conexao.close

set conexao = nothing

End Function

%>

 

 

Minha dificuldade é criar as mesmas páginas porém com o modelo de conexão conforme o demostrado abaixo e mudar a forma de aparecer o contador.

Para isso, crie a página "testecontador.asp" para se ter uma idéia.

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<!--#Include file="dbConexao.asp"-->

<!--#Include file="funcoes.asp"-->

<%

'Chamando a sub de conexão database

Dim conexaoDatabase

'Abrir Conexão

call AbreConexao

 

'Contador ************************************************************************************************************

set rs=Server.CreateObject("ADODB.Recordset")

'crio o SQL

SQL="SELECT tb_acessos.Cod, tb_acessos.contador FROM tb_acessos "

rs.open SQL,conexaoDatabase,1,3

'Fim contador*********************************************************************************************************

 

'Fechando a conexão

set conexaoDataBase = nothing

%>

 

</head>

 

<body>

<!--Início contador-------------------------------------------------------------------->

<%while not rs.eof%>

<table>

<tr>

<td>Acessos: <%=rs("contador")%></td>

</tr>

 

<% rs.movenext

wend

Set rs=nothing

Set conexaoDatabase=nothing

%>

</table>

</html>

 

Dessa forma não funciona.

Se no exemplo da página "default.asp" é possivel abrir a página, fazer atualização da tabela e aparecer o contador não poderia o cóidigo aceitar isso:

<%=rs("contador")%>
ou não é possível?

 

Gostaria de ter um contador em uma página que viesse de uma tabela (numeros de acessos ficassem no banco de dados).

 

Muito obrigado.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei um code no lab. de códigos, dá uma ohada vai clarear bastante sua dúvida

Compartilhar este post


Link para o post
Compartilhar em outros sites

É aqui onde tem esse título? [Resolvido] Obtendo o caminho completo.

Obrigado, pela sua atenção, mas não é bem isso, ou melhor, você tem todos os motivos para orientar dessa forma, mas o problema não é só aprender fazer um caminho virtual. Em todas as minhas páginas eu uso <!--include file=......-->. O código é igual à conexão do exemplo "testecontador.asp".

Para atender as minhas necessidades de criar um contador para colocar em uma página em ASP, que funciona mais ou menos igual aqui no fórum, ou seja: postei um tópico. Foi criado um título. Esse título está em uma página e nele foi criado um link que chama outra página onde constam todas as “respostas” desse tópico. Muito bem.

Tem que existir algum local para armazenar (banco de dados) os acessos a esse tópico, do contrário, não ficaria amostrando no fórum as quantidades de “Tópicos”, “Visualizações” e “Respostas”. Essas quantidades (exceto resposta) são de certo modo “Acessos a esse tópico/visualização”.

É exatamente isso (salvo se aqui o campo “Visualização” faz a contagem por dia através do IP) que as páginas "default.asp" e "funcoes.asp" fazem. Entretanto, eu me deparei com um código diferente do que aprendi para mostrar os registros em uma tabela em uma página em ASP.

Por favor, observe que no código das páginas "default.asp" e "funcoes.asp" tem variáveis, Function etc que eu nunca trabalhei. A minha tentativa de adaptação da forma como está o código das páginas "default.asp" e "funcoes.asp" para "testecontador.asp" não funcionou.

 

Por exemplo, em “default.asp” está assim aqui:

 

Set conexao = Server.CreateObject("ADODB.Connection")

conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("dados/info16br.mdb")

 

 

 

 

Em todas as minhas páginas essa parte está assim:

 

 

 

 

 

 

<%

'Chamando a sub de conexão database

Dim conexaoDatabase

'Abrir Conexão

call AbreConexao

 

'Contador ************************************************************************************************************

set rs=Server.CreateObject("ADODB.Recordset")

'crio o SQL

SQL="SELECT tb_acessos.Cod, tb_acessos.contador FROM tb_acessos "

rs.open SQL,conexaoDatabase,1,3

'Fim contador*********************************************************************************************************

 

'Fechando a conexão

set conexaoDataBase = nothing

%>

 

 

 

 

 

Como vou transformar isso:

 

 

Set conexao = Server.CreateObject("ADODB.Connection")

conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("dados/info16br.mdb")

 

 

Em isso:

 

 <%
'Chamando a sub de conexão database
Dim conexaoDatabase
'Abrir Conexão
call AbreConexao

'Contador ************************************************************************************************************
set rs=Server.CreateObject("ADODB.Recordset")
'crio o SQL
SQL="SELECT tb_acessos.Cod, tb_acessos.contador FROM tb_acessos "
rs.open SQL,conexaoDatabase,1,3
'Fim contador*********************************************************************************************************

'Fechando a conexão
set conexaoDataBase = nothing
%>


 

O outro desafio é fazer com que seja eliminada essa Function da página “default.asp”:

 

<%

Function PegarImg(Contar)

For numero = 1 to Len(Contar)

Response.Write "<img src=imagens/" & Mid(Contar,numero,1) & ".gif>"

Next

End Function

%>

 

 

 

Desejo fazer com que o código acesse a tabela “tb_acesso” de forma que o campo “contador” da “tb_acessos” fique no código assim:

 

 

<body>

<!--Início contador-------------------------------------------------------------------->

<%while not rs.eof%>

<table>

<tr>

<td>Acessos: <%=rs("contador")%></td>

</tr>

 

<% rs.movenext

wend

Set rs=nothing

Set conexaoDatabase=nothing

%>

</table>

</html>

 

 

 

Esses vêm sendo os grandes desafios para aprender.

Adianto que já analisei código de página em ASP que chama um arquivo “contador.txt” outra que pega o IP da máquina de quem acessa. Não é isso. O citado acima já me atende.

 

 

 

 

 

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.