03. december 2002 - 13:54Der er
20 kommentarer og 1 løsning
Hjælp til søge funktion
Halløjsa. Jeg er i gang med at lave en søge funktion, og den virker nu også. Men mit problem er at jeg ikke ved hvordan jeg bestemmer hvor henne på søge siden mine søgeresutater skal komme frem, altså hvilken tabel.
Eks: http://www.frozen-design.dk/soeg/eks.htm -------------------------------------------------------- selve søgensiden hedder index.htm, scripet hedder search.asp hvis det er nogen hjælp
<!-- #include file="index.htm"--> <% strKeyword = Trim(Request.Form("Keyword")) If Len(strKeyword) = 0 Then Response.Clear Response.Redirect("search.asp") Else strKeyword = Replace(strKeyword,"'","''") End If strSQL = "SELECT ID, LinkName, Beskrivelse, LinkURL, ID, sogeord, min FROM links WHERE" strSQL = strSQL & " (LinkName LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (sogeord LIKE '%" & strKeyword & "%')" strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then Response.Write "<center>" Response.Write "<table border=""0"" cellspacing=""0"" width=""80%"" cellpadding=""3"" >" Do While Not rs.EOF Response.Write "<tr><td width=100% ><FONT FACE=""Verdana, Times New Roman"" SIZE=""2"" >" & rs("min") & "<a href=redirect.asp?id="& rs("ID")&" TARGET=_blank>"& rs("LinkName") &"</A> - " & rs("Beskrivelse")&"<BR></FONT><FONT FACE=""Verdana, Times New Roman"" SIZE=""1"" ></FONT> <FONT face=""Verdana, Times New Roman"" Size=""1"" >" & "</font><BR><font face=""Verdana, Times New Roman"" Size=""1"" >Adresse : </font><font face=""Verdana, Times New Roman"" Size=""1"" >" & rs("LinkURL") &" - <a href=redirect.asp?id="& rs("ID")&" TARGET=_blank></a><BR><HR></td></tr>" rs.MoveNext Loop Response.Write "</FONT></table>" Else Response.Write "<p><FONT FACE=""Verdana, Times New Roman"" SIZE=""2"" >Søg fandt ikke noget til dig!" End If myConn.Close Set myConn = Nothing %> </html>
Vil du gerne have vist resultaterne på din index.htm side??? Det kan du ikke, html filer er ikke dynamiske.... Du er derfor nødt til at lave en asp side til søgeresultatet
og placere du den et andet sted skal du nok lige have det her med
If Not (rs.BOF Or rs.EOF) Then Response.Write "<center>" Response.Write "<table border=""0"" cellspacing=""0"" width=""80%"" cellpadding=""3"" >" Do While Not rs.EOF Response.Write "<tr><td width=100% ><FONT FACE=""Verdana, Times New Roman"" SIZE=""2"" >" & rs("min") & "<a href=redirect.asp?id="& rs("ID")&" TARGET=_blank>"& rs("LinkName") &"</A> - " & rs("Beskrivelse")&"<BR></FONT><FONT FACE=""Verdana, Times New Roman"" SIZE=""1"" ></FONT> <FONT face=""Verdana, Times New Roman"" Size=""1"" >" & "</font><BR><font face=""Verdana, Times New Roman"" Size=""1"" >Adresse : </font><font face=""Verdana, Times New Roman"" Size=""1"" >" & rs("LinkURL") &" - <a href=redirect.asp?id="& rs("ID")&" TARGET=_blank></a><BR><HR></td></tr>" rs.MoveNext Loop Response.Write "</FONT></table>" Else Response.Write "<p><FONT FACE=""Verdana, Times New Roman"" SIZE=""2"" >Søg fandt ikke noget til dig!" End If
Hvis du blvier træt af din egen søgefunktion, så kan du altdi hente en færdig på nedenstående link. Den fungerer ganske fremragende, og er helt gratis.
og hele search scriptet skal ligge i den fil som det skal vises fra...
hvis du fx lavet index.htm om til index.asp. .så kan det lade sig gøre..
Du ligger det her styk af koden i toppen af filen..... <% strKeyword = Trim(Request.Form("Keyword")) If Len(strKeyword) = 0 Then Response.Clear Response.Redirect("search.asp") Else strKeyword = Replace(strKeyword,"'","''") End If strSQL = "SELECT ID, LinkName, Beskrivelse, LinkURL, ID, sogeord, min FROM links WHERE" strSQL = strSQL & " (LinkName LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (sogeord LIKE '%" & strKeyword & "%')" strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN Set rs = myConn.Execute(strSQL)
%>
og det her styk kode, hvor du gerne vil have resultatet fremvist
<% If Not (rs.BOF Or rs.EOF) Then Response.Write "<center>" Response.Write "<table border=""0"" cellspacing=""0"" width=""80%"" cellpadding=""3"" >" Do While Not rs.EOF Response.Write "<tr><td width=100% ><FONT FACE=""Verdana, Times New Roman"" SIZE=""2"" >" & rs("min") & "<a href=redirect.asp?id="& rs("ID")&" TARGET=_blank>"& rs("LinkName") &"</A> - " & rs("Beskrivelse")&"<BR></FONT><FONT FACE=""Verdana, Times New Roman"" SIZE=""1"" ></FONT> <FONT face=""Verdana, Times New Roman"" Size=""1"" >" & "</font><BR><font face=""Verdana, Times New Roman"" Size=""1"" >Adresse : </font><font face=""Verdana, Times New Roman"" Size=""1"" >" & rs("LinkURL") &" - <a href=redirect.asp?id="& rs("ID")&" TARGET=_blank></a><BR><HR></td></tr>" rs.MoveNext Loop Response.Write "</FONT></table>" Else Response.Write "<p><FONT FACE=""Verdana, Times New Roman"" SIZE=""2"" >Søg fandt ikke noget til dig!" End If myConn.Close Set myConn = Nothing %>
Nej du skal faktisk ikke bruge filen. Men det er nok en god ide at adskille din index fil med din søgefil..
så hvis du bruger search.asp til at vise dine søgeresultater skal du bare bygge den på den måde du vil have dine resultater vist.. og så placere resultatet, hvor du vil have det...
Prøv vis mig HTML koden, til der hvor du vil have skrevet søgeresultatet ud, så skal jeg prøve at sætte det ind
<% If Not (rs.BOF Or rs.EOF) Then Response.Write "<table border=""0"" cellspacing=""0"" width=""80%"" cellpadding=""3"" >" Do While Not rs.EOF Response.Write "<tr><td width=100% ><FONT FACE=""Verdana, Times New Roman"" SIZE=""2"" >" & rs("min") & "<a href=redirect.asp?id="& rs("ID")&" TARGET=_blank>"& rs("LinkName") &"</A> - " & rs("Beskrivelse")&"<BR></FONT><FONT FACE=""Verdana, Times New Roman"" SIZE=""1"" ></FONT> <FONT face=""Verdana, Times New Roman"" Size=""1"" >" & "</font><BR><font face=""Verdana, Times New Roman"" Size=""1"" >Adresse : </font><font face=""Verdana, Times New Roman"" Size=""1"" >" & rs("LinkURL") &" - <a href=redirect.asp?id="& rs("ID")&" TARGET=_blank></a><BR><HR></td></tr>" rs.MoveNext Loop Response.Write "</FONT></table>" Else Response.Write "<p><FONT FACE=""Verdana, Times New Roman"" SIZE=""2"" >Søg fandt ikke noget til dig!</p>" End If myConn.Close Set myConn = Nothing %>
hvad skal der stå her. For hvis search.asp ikke skal bruges mere, så er det jo ikke det der skal stå, og hvis jeg skriver index.asp. sker der ikke noget. andet en den bliver ved med at hente sig selv frem igen og igen
Halløjsa Loss, nu virker det, jeg ved ikke hvad jeg havde gjort galt de andre gange. men tak for hjælpen
Synes godt om
Ny brugerNybegynder
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.