Avatar billede morten_soegaard Nybegynder
09. november 2004 - 20:01 Der er 6 kommentarer og
1 løsning

Fejl i søge funktion

Hej
Jeg har lavet en søge funktion som går ind og søger efter noget i en database. Koden ser sådan her ud:


<%
soeg = Request.Form("soeg")
if soeg = "" then
Response.Write("Du skal indtaste noget i søg feltet")


Set my_conn = Server.CreateObject("ADODB.Connection")
my_conn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=...; UID=...; PWD=...;"

strSQL = "SELECT * FROM bud WHERE regnr LIKE '%" & soeg & "%'"

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


    if rs.eof then
    response.write "<b>0 resultater</b>"
    end if
    Do While Not rs.eof
%>

<%

<% Response.Write " "& rs("soeg") & "<br>" %>
<%
rs.MoveNext
Loop

rs.close
set rs = nothing
Conn.close
set Conn = nothing
%>

Den melder denne fejl:
Microsoft VBScript compilation error '800a0400'

Expected statement

/test/soeg.asp, line 33

<% Response.Write " "& rs("soeg") & "<br>"



Håber i kan hjælpe mig med hvad der er galt?

Mvh Morten
Avatar billede moaz Nybegynder
09. november 2004 - 20:07 #1
Som jeg ser det går du ind i løkken mindst én gang, og hvis dit recordset er tomt, får du fejlen.
Prøv at ændre løkken til:

while not rs.eof
  Response.Write " " & rs("soeg") & "<br>"
  rs.MoveNext
wend
Avatar billede morten_soegaard Nybegynder
09. november 2004 - 21:06 #2
Det virker ik rigtigt... Men er os kommet i tanke om at hvis det finder et værdi skal den indtaste alle andre værdier som har samme id.. Hvordan gør man lige det?
Avatar billede goose Nybegynder
09. november 2004 - 21:11 #3
Prøv lige den her:

<%
soeg = Request.Form("soeg")
if soeg = "" then
Response.Write("Du skal indtaste noget i søg feltet")
end if

Set my_conn = Server.CreateObject("ADODB.Connection")
my_conn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=...; UID=...; PWD=...;"

strSQL = "SELECT * FROM bud WHERE regnr LIKE '%" & soeg & "%'"

set rs = Server.CreateObject("ADODB.Recordset")
    if rs.eof then
    response.write "<b>0 resultater</b>"
    else
    Do While Not rs.eof

Response.Write rs("soeg") & "<br>"
rs.MoveNext
Loop
rs.close
set rs = nothing
end if
Conn.close
set Conn = nothing
%>

/Goose
Avatar billede morten_soegaard Nybegynder
09. november 2004 - 21:13 #4
Når jeg sætter hele det der ind melder den denne fejl:

ADODB.Recordset.1 error '800a0e78'

Invalid operation on closed object

/test/soeg.asp, line 24

I linie 24 står der:
    if rs.eof then
Avatar billede goose Nybegynder
09. november 2004 - 21:23 #5
hmm, virker fint hos mig, men jeg bruger nu godt nok en anden connection streng.

/Goose
Avatar billede morten_soegaard Nybegynder
09. november 2004 - 21:30 #6
Hmm.. Den virker til alt det jeg bruger.

Men nu når jeg vil have den til at vise alt det andet som er ved den id som den evt. har fundet, hvordan gør jeg det?
Avatar billede morten_soegaard Nybegynder
10. november 2004 - 10:10 #7
LUKKET
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester