Giver mig følgende resultater: Desværre! - hvis jeg søger på alt andet end T, 1 eller T1 Alle varer - hvis jeg søger på T, 1 eller T1
Min form som ligger i en anden ASP-fil ser således ud: <form method="post" target="prodframe" action="searchprod.asp?mode=submit"><p align="center"><input type="text" value="Søg produkt" onclick="this.value=''" name="T1" size="11" style="font-family: Verdana; font-size: 10 pt; font-weight: bold"><input type="submit" value="Søg" name="B1" size="10" style="font-family: Verdana; font-size: 9 pt; color: #000000"></p></form>
Du over skriver din SQL for hver søge i inde i for loopet ...:
for i = lbound(newsplit) to ubound(newsplit) SQL = "SELECT * FROM Produkter WHERE 'T1' LIKE '%" & newsplit(i) & "%'" strSQL = strSQL & " OR (Varenr LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Varenavn LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Varebeskrivelse LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Detaljemenu LIKE '%" & strKeyword & "%')"
next
Hvilke felter skal du søge på du angiver en masse men eksvis strKeyword variablen findes ikke i den kode du har vist. Fjern de ting som ikke bruges for man kan overskue det.
Prøv med dette styk kode:
SQL = "SELECT * FROM Produkter SQLwhere = "(" for i = lbound(newsplit) to ubound(newsplit) if SQLwhere <> "(" then SQLwhere = SQLwhere & ") AND (" SQLwhere = SQLwhere & "'T1' LIKE '%" & newsplit(i) & "%'" SQLwhere = SQLwhere & " OR (Varenr LIKE '%" & strKeyword & "%')" SQLwhere = SQLwhere & " OR (Varenavn LIKE '%" & strKeyword & "%')" SQLwhere = SQLwhere & " OR (Varebeskrivelse LIKE '%" & strKeyword & "%')" SQLwhere = SQLwhere & " OR (Detaljemenu LIKE '%" & strKeyword & "%')" next if SQLwhere <> "(" then SQLwhere = SQLwhere & ")"
if SQLwhere <> "(" then SQL = SQL & " WHERE " & SQLwhere
Har nu prøvet nedenstående med følgende resultat: Et tomt søgefelt smider mig korrekt til forside.asp Uanset hvad jeg søger på ellers listes alle mine varer (både varenr og varenavn). Også hvis jeg søger på flere ord ad gangen.
if len(newstring) = 0 Then Response.Clear Response.Redirect("forside.asp")
Else
newstring = Replace(newstring,"'","''")
End if
newsplit = split(newstring)
SQL = "SELECT * FROM Produkter" SQLwhere = "(" for i = lbound(newsplit) to ubound(newsplit) if SQLwhere <> "(" then SQLwhere = SQLwhere & ") AND (" SQLwhere = SQLwhere & "Varenr LIKE '%" & newsplit(i) & "%'" SQLwhere = SQLwhere & " OR (Varenavn LIKE '%" & strKeyword & "%')" next if SQLwhere <> "(" then SQLwhere = SQLwhere & ")"
if SQLwhere <> "(" then SQL = SQL & " WHERE " & SQLwhere
Tjah, sådan skal den altså bare kringles, tusind tak Eagleeye.
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.