21. marts 2002 - 07:43Der er
15 kommentarer og 1 løsning
Søgefunktion? Bare rolig - er lavet...
Jeg har lavet mig en sød lille søgefunktion til mit site. Den gennemløber en enkelt kolonne i Access, og opskriver links til indholdet i de celler, der matcher søgeordet. Mens løkken kører optælles antal fundne resultater med en variabel ('t' kan vi kalde den). Meget simpelt. Men jeg kan kun udskrive 't' efter løkken, dvs. efter alle links´ne er opskrevet. Nu har I sikkert gættet, hvad problemet er. 't' vil jeg gerne udskrive i toppen af siden, altså inden søgeresultaterne vises. Kan nogen komme med en løsning på det?
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
hvis man virkelig skal lave koden selv så....: -------- search.asp -------- <form method="Post" action="./results.asp"> <input type="Text" name="Keyword" value="<%=Request.Form("Keyword")%>"> <input type="Submit" name="action" value="Søg"> </form>
<% strKeyword = Request.Form("Keyword") strKeyword = Replace(strKeyword,"'","''") if strKeyword = "" then Response.Redirect("search.asp") end if
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("dinDB.mdb") Set ialt = Conn.Execute("SELECT COUNT(*) AS FOUND FROM Dintabel WHERE Ditfelt LIKE '%" & strKeyword & "%'"") strIalt = ialt("FOUND") Set rs = Conn.Execute("SELECT * FROM Dintabel WHERE Ditfelt LIKE '%" & strKeyword & "%'"")
do until (rs.eof or rs.bof) %> URL: <%=rs("URL")%> <% rs.MoveNext loop %>
<% ' Henter værdien fra form.htm strKeyword = Trim(Request.Form("input"))
Response.Write "<h2>Resultat af din forespørgsel:</h2><br>"
If Len(strKeyword) = 0 Then ' Hvis der ikke er skrevet i feltet Response.Clear Response.Redirect("form.htm") Else ' Hvis der er skrevet i feltet strKeyword = Replace(strKeyword,"'","''") End If
' Opbygger en dynamisk SQL streng strSQL = "SELECT ID, Track FROM audiotabel WHERE" strSQL = strSQL & " (Track LIKE '%" & strKeyword & "%') ORDER BY Track"
' Skaber DSNLess forbindelse til DBen strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("audio.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen
Response.Write "<br><a href='java script:history.go(-1)'>Foretag ny søgning</a>"
Else
' Hvis der ikke er fundet poster på søgningen Response.Write "<h4>Forespørgslen på '<font color='red'>" & strKeyword & "</font>' gav ingen resultater.</h4><br>" Response.Write "<a href='java script:history.go(-1)'>Foretag ny søgning</a>" End If
myConn.Close Set myConn = Nothing %>
</body> </html>
**********************************
Her ses counter´en jeg har sat ind. Det er DEN jeg vil udskrive i toppen, inden links´ne skrives op.
Meyer---> Mener faktisk at jeg har prøvet det, men jeg forsøger lige igen. Problemet er jo, at antallet af fundne records skal skrives op, inden counteren i løkken er færdig med at tælle op. Lyder umiddelbart lidt umuligt i mine ører, men jeg håber der kommer en løsning........
Som det ses har jeg været nødt til at lave en variabel "TrackTemp", idet enkelte af recordsne indeholder samme tekst. Så i virkeligheden finder den af og til jo flere records end der faktisk opskrives.
Men det andet spørgsmål er jo allerede løst på den goe' måde af cthun, kan jeg se. Siden skal bare omdøbes til denneside.asp, så burde det virke, hvis det virkede da siderne var adskilte.
Ja, det kunne du også have fortalt mig, men nu får cthun også en god dag :o)
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.