15. januar 2004 - 20:26Der er
19 kommentarer og 1 løsning
Søgmenu der søger i en database.
Nu er det sådan at jeg har et database hvor der findes mange tabler i.
Der jeg gerne vil kunne søge i min database i tablen bruger og rækkerne hedder "navn" "brugernavn" "efternavn". Den skal kunne gøre så man bare har brug for at indtaste det hele i et felt.
Er det overhovede muligt at lave sådan noget i asp? For jeg er helt på bar bund, og kan ikke rigtig finde noget nogen steder.
Ja Hvis jeg nu indtaster Emil og nielsen så skal den finde alt med Emil og nielsen. Men det vil den side ikke jeg har nu her. Jeg kan ikke bare skrive Emil nielsen, for så siger den at ikke den ikke kan finde noget. :(
arr = Split(str," ") sqlWhere = "" for i = lbound(arr) to ubound(arr) if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & "(navn LIKE '%" & arr(i) & "'%" sqlWhere = sqlWhere & " OR brugernavn LIKE '%" & arr(i) & "'%" sqlWhere = sqlWhere & " OR efternavn LIKE '%" & arr(i) & "'%" sqlWhere = sqlWhere & ")" next
SQL = "select * from users" if sqlWhere <> "" then SQL = SQL & " where " & sqlWhere
Set rs = Conn.Execute(SQL)
If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen Response.Write "<p>Søgeresultat</p>" Response.Write "<table border=1>" Response.Write "<tr><th>Navn</th><th>Adresse</th><th>Beskrivelse</th></tr>" Do While Not rs.EOF Response.Write "<tr><td>" & rs("ForNavn") & "</td>" Response.Write "<td>" & rs("brugernavn") & "</td>" Response.Write "<td>" & rs("EfterNavn") & "</td></tr>" rs.MoveNext Loop Response.Write "</table>" Else ' Hvis der ikke er fundet poster på søgningen Response.Write "<p>Der er ikke fundet noget på denne søgning</p>" End If
' Rydder op efter os myConn.Close Set myConn = Nothing %>
Du skal bare hvade tilføjet et conenction object som hedder Conn som kan forbinde til din database. Til sidst i koden klades den for myConn Så det lige passe sådan du enten bruger myConn eller Conn
Du skal kan ikke helt undgå at rette i den ene linje som er denne: Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("dindatabsefil.mdb") Da du skal skrive stien relativ eller fysik til din database samt database navnet. Som det er vist lige nu skal database filen hedde dindatabsefil.mdb og ligge samme med ASP filen du retter i lige nu.
Syntax error in query expression '(navn LIKE '%simon'% OR brugernavn LIKE '%simon'% OR efternavn LIKE '%simon'%) AND (navn LIKE '%rønde'% OR brugernavn LIKE '%rønde'% OR efternavn LIKE '%rønde'%)'.
*DOH* det kunne jeg da godt se... nu er det bare sådan at den virker på samme måde som på http://activedeveloper.dk/aspdigital/kapitel2/search.asp . Jeg kan stadig kun skrive en ting. Jeg kan ikke skrive så den leder i flere rækker.
Lige nu sættet den AND imellem de ting man skriver. Så hvis man skrive Ole Hansen vil den kun finde poster hvor begge ord indgår. Hvis den skal finde alle med Ole og alle med Hansen skal du rette denne linje:
if sqlWhere <> "" then sqlWhere = sqlWhere & " AND "
Til denne AND->OR:
if sqlWhere <> "" then sqlWhere = sqlWhere & " OR "
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.