Avatar billede gazzer Nybegynder
02. januar 2006 - 15:24 Der er 6 kommentarer og
1 løsning

søning ingen data

jeg har lavet et søge script og det virker fint.. men jeg skal os ha lavet så hvis der ingen data findes kommer det med en medelese.. ?? på forhånd tak

database: access

<%
    if Request.ServerVariables("REQUEST_METHOD") = "POST" then
   
    if (Request.Form("ip1") <> "") then
   
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "select * from grupper Where (ip1 LIKE ('%" & Request.Form("ip1")& "%') AND ip2 LIKE ('%" & Request.Form("ip2") & "%') AND ip3 LIKE ('%" & Request.Form("ip3") & "%') AND ip4 LIKE ('%" & Request.Form("ip4") & "%'))"
    Set rs = Conn.Execute(strSQL)
   
   
%>
Avatar billede keysersoze Ekspert
02. januar 2006 - 15:32 #1
If rs.eof Then
  response.write "ingen resultater"
Else
  'udskriv resultater
End IF
Avatar billede jansangill Nybegynder
02. januar 2006 - 16:52 #2
set counter = Conn.execute("select count(*) AS tal from tabel where (ip1 like '%"&request.form("search")&"%')")

if request.form("soeg") = "Søg" then

if counter("tal") < 1 then
response.write "ingen poster"

    else

response.write "<p>Din søgning gav:&nbsp;" & counter("tal") & "&nbsp;resultater</p>"

end if
end if
Avatar billede gazzer Nybegynder
02. januar 2006 - 16:56 #3
hmm det duer ik :(
Avatar billede keysersoze Ekspert
02. januar 2006 - 17:10 #4
kommer der en fejl eller hvad sker der?

der er i hvert fald ingen tvivl om at det er dette http://activedeveloper.dk/artikler/default.asp?articleid=59 du skal have fat i - men for at vi kan hjælpe dig videre må du komme med lidt mere info
Avatar billede gazzer Nybegynder
03. januar 2006 - 11:58 #5
ok jeg har nu ændret koden så den ser således ud:
<%
    set counter = Conn.execute("select count(*) AS tal from grupper Where (ip1 LIKE ('%" & Request.Form("ip1")& "%') AND ip2 LIKE ('%" & Request.Form("ip2") & "%') AND ip3 LIKE ('%" & Request.Form("ip3") & "%') AND ip4 LIKE ('%" & Request.Form("ip4") & "%'))")
   
    if request.form("search") = "Søg" then

    if counter("tal") < 1 then
    response.write "ingen poster"

    else

    response.write "<p>Din søgning gav:&nbsp;" & counter("tal") & "&nbsp;resultater</p>"
   
    end if
    end if

    if Request.ServerVariables("REQUEST_METHOD") = "POST" then
   
    if (Request.Form("ip1") <> "") then
   
    If (rs.BOF AND rs.EOF) Then
    response.write "ingen poster"
   
    Else
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "select * from grupper Where (ip1 LIKE ('%" & Request.Form("ip1")& "%') AND ip2 LIKE ('%" & Request.Form("ip2") & "%') AND ip3 LIKE ('%" & Request.Form("ip3") & "%') AND ip4 LIKE ('%" & Request.Form("ip4") & "%'))"
    Set rs = Conn.Execute(strSQL)

    end if
    end if
    end if   
%>

den kommer frem med følgende fejl når jeg søger:
ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/index.asp, line 0
Avatar billede gazzer Nybegynder
03. januar 2006 - 12:10 #6
nu er koden ændreet til:
<%
    set counter = Conn.execute("select count(*) AS tal from grupper Where (ip1 LIKE ('%" & Request.Form("ip1")& "%') AND ip2 LIKE ('%" & Request.Form("ip2") & "%') AND ip3 LIKE ('%" & Request.Form("ip3") & "%') AND ip4 LIKE ('%" & Request.Form("ip4") & "%'))")
   
    if request.form("search") = "Søg" then

    if counter("tal") < 1 then
    response.write "<br>ip findes ikke"

    else
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "select * from grupper Where (ip1 LIKE ('%" & Request.Form("ip1")& "%') AND ip2 LIKE ('%" & Request.Form("ip2") & "%') AND ip3 LIKE ('%" & Request.Form("ip3") & "%') AND ip4 LIKE ('%" & Request.Form("ip4") & "%'))"
    Set rs = Conn.Execute(strSQL)
   
    response.write "<p>Din søgning gav:&nbsp;" & counter("tal") & "&nbsp;resultater</p>"
   
    end if
    end if
%>

jeg får nu ingen fejl.. jeg takker for hjælpen..
Avatar billede keysersoze Ekspert
03. januar 2006 - 12:33 #7
det er spild af ressourcer at lave 2 forespørgsler til databasen når/hvis det hele kan klares i ét opslag - fx;

<%
If request.form("search") = "Søg" Then
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "select * from grupper Where (ip1 LIKE ('%" & Request.Form("ip1")& "%') AND ip2 LIKE ('%" & Request.Form("ip2") & "%') AND ip3 LIKE ('%" & Request.Form("ip3") & "%') AND ip4 LIKE ('%" & Request.Form("ip4") & "%'))"
    Set rs = Conn.Execute(strSQL)
    If rs.eof Then
        response.write "<br>ip findes ikke"
    Else
        Do While Not rs.eof
            response.write rs("ip1") & "<br>"
        rs.movenext
        loop
    End If
End if
%>
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