Ir para conteúdo

POWERED BY:

Arquivado

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

mkboy

Pegar dados pelo ID

Recommended Posts

To passando um registro pela query string, to mandano o ID de um registro.Como faço para imprimir na tela somente os dados por aquele ID da query string. :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

SQL = "SELECT * FROM tabela WHERE id=" & request.QueryString("id")SET rs = conn.execute(SQL)...vai printa os dados vai...

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparece uma tela em branco e não apresenta erro algum...Fiz assim e não consegui:

<%dim objRSdim strrsSet conn = Server.CreateObject ("ADODB.Connection")strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")conn.open strconnSet objRS = Server.CreateObject("ADODB.Recordset")SQL = "SELECT * FROM bo WHERE id=" & request.QueryString("id")SET objrs = conn.execute(SQL)total = objRS.recordcount%> <%=id%><br><%=nome%><br><%=email%><br><%=data%><br><%=ip%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso você só esqueceu de falar quais os valores das variaveis que você quer printar.

Porisso que retorna em branco.

 

Assim:

id = objRS("campo1")nome = objRS("campo2")
E assim vai...

 

Recomendo você fazer uma verificação se o registro existe mesmo. Ta certo que o parametro vem por QueryString e é dificil de não existir, mas nao custa prevenir né? ;)

 

Coloca assim, depois de dar os valores as variaveis:

<%If objRS.eof = false then%><%=id%><br><%=nome%><br><%=email%><br><%=data%><br><%=ip%><%Else%>Nenhum cadastro foi encontrado.<%End if%>

 

Certo?

Qualquer coisa pode fala ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

To quase lá!!!

 

Fiz o formulário para alterar os dados, e neles preenchidos todos os dados que peguei pelo ID da query string.

 

Fiz o form assim: alterar.asp

 

alterar.asp

 

<%

dim objRS

dim strrs

 

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

strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")

conn.open strconn

 

Set objRS = Server.CreateObject("ADODB.Recordset")

 

SQL = "SELECT * FROM bo WHERE id=" & request.QueryString("id")

SET objrs = conn.execute(SQL)

 

total = objRS.recordcount

%>

 

<%

id = objRS("id")

nome = objRS("nome")

email = objRS("email")

data = objRS("data")

ip = objRS("ip")

%>

 

<%If objRS.eof = false then%>

 

<Html>

<head><title>Editar Registro</title></head>

<body>

<center>

<form action="atualizar.asp" method="get">

<table width="400" border="1" cellpading="0" cellspacing="0">

 

<tr><td>ID:</td><td><input type="hidden" name="id" value="<%=id%>"></td></tr>

<tr><td>NOME:</td><td><input type="text" name="nome" value="<%=nome%>"></td></tr>

<tr><td>E-MAIL:</td><td><input type="text" name="email" value="<%=email%>"></td></tr>

<tr><td>DATA:</td><td><input type="text" name="data" value="<%=data%>"></td></tr>

<tr><td>IP</td><td><input type="text" name="ip" value="<%=ip%>"></td></tr>

<tr><td>ALTERAR:</td><td><input type="submit" value="alterar"></td></tr>

</table>

</form>

 

</center>

</body>

</html>

 

 

<%Else%>

Nenhum cadastro foi encontrado.

<%End if%>

Agora criei uma action para fazer o UPDATE, mas acho que to fazendo coisa errada pois ta apresentando erro:

 

<%

dim objRS

dim strrs

 

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

strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")

conn.open strconn

 

Set objRS = Server.CreateObject("ADODB.Recordset")

strrs = "UPDATE from * bo SET "'& id = objRS("id")"'&nome = objRS("nome")"'&"'&email = objRS("email")"'&data = objRS("data")"'&ip = objRS("ip")'"

 

total = objRS.recordcount

%>

 

 

<%If objRS.eof = false then%>

 

<% response.redirect "processa_01.asp" %>

 

<%Else%>

Nenhum cadastro foi encontrado.

<%End if%>

O erro:

 

ADODB.Recordset error '800a0e78'

 

Operação solicitada pelo aplicativo não permitida se o objeto estiver fechado.

 

/pesca/boletim/atualizar.asp, line 17

Onde errei!

 

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tira o asterisco da SQL

 

strrs = "UPDATE from bo SET "'& id = objRS("id")"'&nome = objRS("nome")"'&"'&email = objRS("email")"'&data = objRS("data")"'&ip = objRS("ip")'"

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perai, de onde vem os valoes desses parametros no UPDATE?

strrs = "UPDATE from * bo SET "'& id = objRS("id")"'&nome = objRS("nome")"'&"'&email = objRS("email")"'&data = objRS("data")"'&ip = objRS("ip")'"

Pq você abriu uma conexao e atrubiui o objRS como isso aqui:

Set objRS = Server.CreateObject("ADODB.Recordset")
Entao, obviamente ele nao ta pegando dados de nenhum lugar, oq pode estar resultando nesse erro... ;)

 

Ve se você consegue posta algo mais pra mim ve se da pra resolve isso tb.

 

Ah, outra coisa, nao precisa coloca FROM no UPDATE...eu pelo menos nao coloco. Nao é necessario. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza,Fiz assim:

<%dim objRSdim strrsSet conn = Server.CreateObject ("ADODB.Connection")strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")conn.open strconnSet objRS = Server.CreateObject("ADODB.Recordset")strrs = "UPDATE bo SET id="&request.form("id")&", nome='"&request.form("nome")&"', email='"&request.form("email")&"', data='"&request.form("data")&"', ip='"&request.form("ip")&"' where id="&request.form("id")total = objRS.recordcount%> <%If objRS.eof = false then%><% response.redirect "busca.asp" %><%Else%>Nenhum cadastro foi encontrado.<%End if%>

E ta apresentando esse erro:

ADODB.Recordset error '800a0e78' Operação solicitada pelo aplicativo não permitida se o objeto estiver fechado. /pesca/boletim/atualizar.asp, line 15

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim:

<%dim objRSdim strrsSet conn = Server.CreateObject ("ADODB.Connection")strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")conn.open strconnSet objRS = Server.CreateObject("ADODB.Recordset")strrs = "UPDATE bo SET id="&request.form("id")&", nome='"&request.form("nome")&"', email='"&request.form("email")&"', data='"&request.form("data")&"', ip='"&request.form("ip")&"' where id="&request.form("id")objRS.open strrs, strconntotal = objRS.recordcount%> <%If objRS.eof = false then%><% response.redirect "busca.asp" %><%Else%>Nenhum cadastro foi encontrado.<%End if%>

E agora ta dando esse erro:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][Driver ODBC para Microsoft Access] Syntax error in UPDATE statement. /pesca/boletim/atualizar.asp, line 14

Compartilhar este post


Link para o post
Compartilhar em outros sites

você ta cometendo o mesmo erro...olha só:

<%

 

dim objRS

dim strrs

 

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

strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")

conn.open strconn

 

Set objRS = Server.CreateObject("ADODB.Recordset")

 

strrs = "UPDATE bo SET id="&request.form("id")&", nome='"&request.form("nome")&"', email='"&request.form("email")&"', data='"&request.form("data")&"', ip='"&request.form("ip")&"' where id="&request.form("id")

 

 

total = objRS.recordcount

%>

 

 

<%If objRS.eof = false then%>

 

<% response.redirect "busca.asp" %>

 

<%Else%>

Nenhum cadastro foi encontrado.

<%End if%>

 

Saca só as linhas em vermelho. Quem valor elas tem, eu lhe pergunto. Está dando pau justamente por causa disso.

 

Olha as linhas de azul. Voce atribuiu à "objRS" a abertura de um objeto, e lá embaixo está tentando dar um RecordCount nele...e mais embaixo fez uma condição If com EOF.

 

O certo era você atribui essa abertura de objeto à outra variavel.

 

Entendeu oq eu quiz dizer? ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Independente do seu resultado ser negativo ou positivo, posta ai pra mim sabe. Quero ve como q ta andando... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua dando erro de sintaxe no update...Fiz um response write e um end depois do update e ele printou o seguinte:

UPDATE bo SET id=, nome='', email='', data='', ip='' where id=

Será que é melhor fazer o request antes e depois só o update!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, pra pega os valores via Request.Form, você tem que da um submit no formulário primeiro...você ta fazendo isso?Posta pra mim a pagina do formulario tb e essa do UPDATE pra fica mais facil pra mim te ajuda, pq dai dependendo de como for, eu ja monto aqui pra você e te mando como te que ser... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim Cable.Eu fiz um montei um formulário com os dados do ID, e agora faço um submit pra processar, VEJA:Esse é o formulário que montei com os dados vindos do ID:

<%dim objRSdim strrsSet conn = Server.CreateObject ("ADODB.Connection")strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")conn.open strconnSet objRS = Server.CreateObject("ADODB.Recordset")SQL = "SELECT * FROM bo WHERE id=" & request.QueryString("id")SET objrs = conn.execute(SQL)total = objRS.recordcount%><%id = objRS("id")nome = objRS("nome")email = objRS("email")data = objRS("data")ip = objRS("ip")%> <%If objRS.eof = false then%><Html><head><title>Editar Registro</title></head><body><center><form action="atualizar.asp" method="get"><table width="400" border="1" cellpading="0" cellspacing="0"><tr><td>NOME:</td><td><input type="text" name="nome" value="<%=nome%>"><input type="hidden" name="id" value="<%=id%>"></td></tr><tr><td>E-MAIL:</td><td><input type="text" name="email" value="<%=email%>"></td></tr><tr><td>DATA:</td><td><input type="text" name="data" value="<%=data%>"></td></tr><tr><td>IP</td><td><input type="text" name="ip" value="<%=ip%>"></td></tr><tr><td>ALTERAR:</td><td><input type="submit" value="alterar"></td></tr></table></form></center></body></html>

E esse o autualizar:

<%dim objRSdim strrsSet conn = Server.CreateObject ("ADODB.Connection")strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")conn.open strconnSet objRS = Server.CreateObject("ADODB.Recordset")strrs = "UPDATE bo SET id="&request.form("id")&", nome='"&request.form("nome")&"', email='"&request.form("email")&"', data='"&request.form("data")&"', ip='"&request.form("ip")&"' where id="&request.form("id")Response.Write strrsResponse.EndobjRS.open strrs, strconn %> <% response.redirect "busca.asp" %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, mude o Method do seu Form pra POST.

Assim:

<form action="atualizar.asp" method="post">

Certo....agora, monta sua pagina Atualiza.asp desse jeito:

<%dim objRSdim strrsSet conn = Server.CreateObject ("ADODB.Connection")strconn = "Driver={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("fish.mdb")conn.open strconnstrrs = "UPDATE bo SET id="&request.form("id")&", nome='"&request.form("nome")&"', email='"&request.form("email")&"', data='"&request.form("data")&"', ip='"&request.form("ip")&"' where id="&request.form("id")'Response.Write strrs'Response.Endconn.execute(strrs)%><% response.redirect "busca.asp" %>

Agora acho que nao tem erro....deve funcionar concerteza.

Testa lá e me fala ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

:D k!Funcionou PERFEITO!!!Cable, obrigado é pouco para agradecer a atenção dispensada.MUITO OBRIGADO!!!Agora vou trabalhar no delete....VALEU :)

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.