Avatar billede wampiro2001 Nybegynder
26. september 2001 - 21:31 Der er 4 kommentarer

Opgradere denne søgemaskine...

Jeg har fået lavet denne søgemaskine i ASP, det er til et cd-kartotek. Hvordan kan man lave den så man kan søge på flere ord og hvis man ikke udfylder noget i felterne så viser den ingenting istedet for alt hvad der er i databasen.

<%
CDnummer = Trim(Request.Form(\"CDnummer\"))
If Len(CDnummer) = 0 Then
Else
CDnummer = Replace(CDnummer,\"\'\",\"\'\'\")
End If

Nummer = Trim(Request.Form(\"nummer\"))
If Len(Nummer) = 0 Then
Else
Nummer = Replace(Nummer,\"\'\",\"\'\'\")
End If

Kunster = Trim(Request.Form(\"Kunster\"))
If Len(Kunster) = 0 Then
Else
Kunster = Replace(Kunster,\"\'\",\"\'\'\")
End If

Sang = Trim(Request.Form(\"Sang\"))
If Len(Sang) = 0 Then
Else
Sang = Replace(Sang,\"\'\",\"\'\'\")
End If

SQL = \"SELECT CDnummer, Nummer, Kunster, Sang FROM Kartotek WHERE\"
SQL = SQL & \" (CDNummer LIKE \'%\" & CDnummer & \"%\')\"
SQL = SQL & \" and (Nummer LIKE \'%\" & Nummer & \"%\')\"
SQL = SQL & \" and (Kunster LIKE \'%\" & Kunster & \"%\')\"
SQL = SQL & \" and (Sang LIKE \'%\" & Sang & \"%\')\"
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"database.mdb\")
Set Connection = Server.CreateObject(\"ADODB.Connection\")
Connection.Open DSN
Set RS = Connection.Execute(SQL)
If Not (RS.BOF Or RS.EOF) Then
Response.Write \"        <table cellpadding=\"\"5\"\" cellspacing=\"\"0\"\">\"
Response.Write \"          <tr>\"
Response.Write \"            <td width=\"\"200\"\"><img src=\"\"interface/images/thump_cdnummer.gif\"\" width=\"\"164\"\" height=\"\"10\"\"></td>\"
Response.Write \"            <td width=\"\"200\"\"><img src=\"\"interface/images/thump_nummer.gif\"\" width=\"\"120\"\" height=\"\"10\"\"></td>\"
Response.Write \"            <td width=\"\"200\"\"><img src=\"\"interface/images/thump_kunster.gif\"\" width=\"\"135\"\" height=\"\"10\"\"></td>\"
Response.Write \"            <td width=\"\"200\"\"><img src=\"\"interface/images/thump_sang.gif\"\" width=\"\"80\"\" height=\"\"10\"\"></td>\"
Response.Write \"          </tr>\"
Response.Write \"          <tr>\"
Response.Write \"            <td colspan=\"\"4\"\"><img src=\"\"interface/images/linje.gif\"\" width=\"\"100%\"\" height=\"\"1\"\"></td>\"
Response.Write \"          </tr>\"
Response.Write \"          <tr>\"
Do While Not RS.EOF
Response.Write \"          <tr>\"
Response.Write \"            <td width=\"\"200\"\">\" & RS(\"CDnummer\") & \"</td>\"
Response.Write \"            <td width=\"\"200\"\">\" & RS(\"Nummer\") & \"</td>\"
Response.Write \"            <td width=\"\"200\"\">\" & RS(\"Kunster\") & \"</td>\"
Response.Write \"            <td width=\"\"200\"\">\" & RS(\"Sang\") & \"</td>\"
Response.Write \"          </tr>\"
RS.MoveNext
Loop
Response.Write \"        </table>\"
Else
Response.Write \"Der kunne desværre ikke findes noget i databasen!\"
End If
Connection.Close
Set Connection = Nothing
%>
Avatar billede orca Nybegynder
26. september 2001 - 21:41 #1
I stedet for at gøre dette:

Sang = Trim(Request.Form(\"Sang\"))
If Len(Sang) = 0 Then
Else
Sang = Replace(Sang,\"\'\",\"\'\'\")
End If

Kan du mere simpelt gøre dette:

Sang = Trim(Request.Form(\"Sang\"))
If Len(Sang) > 0 Then
Sang = Replace(Sang,\"\'\",\"\'\'\")
End If

Du kan også bare ændre en variabel inde i hver af disse request.form blokke, altså ligesom dette:

Sang = Trim(Request.Form(\"Sang\"))
If Len(Sang) > 0 Then
ErIkkeTom = True
Sang = Replace(Sang,\"\'\",\"\'\'\")
End If

Og så til sidst tjekker du om ErIkkeTom er = False eller True, hvis den er false skal du ikke returnere noget data, ellers bare som normalt.

Mvh Mark
www.profiled.org - Get a free chat, friend or business profile.
Avatar billede wampiro2001 Nybegynder
29. september 2001 - 16:45 #2
Hva\' med det med at søge på flere ord af gangen???
Avatar billede runesoft Nybegynder
01. oktober 2001 - 15:25 #3
dette er ikke testet, men prøv denne linie. den burde søge på alle ord i i teksten
SQL = SQL & \" and (Kunster LIKE \'%\" & join(split(trim(Kunster),\" \"),  \"%\' OR Kunster LIKE \'%\") & \"%\')\"
Avatar billede runesoft Nybegynder
01. oktober 2001 - 15:25 #4
Og selvfølgelig ligeledes på de andre felter...
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