Jag ska bygga en sökfunktion där man ska kunna söka mha 3 - 5 olika saker. Man ska kunna kombinera en sökning genom att söka på namn och sammtidigt klient. Så att den visar alla poster med Namnet man sökte på samt klienten.
Skulle nån kunna beskriva ett bra tillvägagångssett där sökningsdelen är "Flexibel"... man ska alltså kunna söka enbart på klient, enbart på person, enbart på serialnummer eller kombinera alla 3 eller kombiner 2 av dom..osv
OBS! Detta funkar inte om vissa fält i tabellen är tomma.
Ingen perfekt lösning kanske, men ganska enkel att jobba med.
Lägg bara in innehållet i sökfälten där det står SÖKORD. Det spelar ingen roll om det är en tom sträng.
SELECT falt1, falt2, falt3, falt4, falt5
FROM TABELL
WHERE (((falt1) Like '*SÖKORD*')
AND ((falt2) Like '*SÖKORD*')
AND ((falt3) Like '*SÖKORD*')
AND ((falt4) Like '*SÖKORD*')
AND ((falt5) Like '*SÖKORD*'))
Förövrigt använder jag följande kod som kanske kan fungera för ditt ändamål
For each item in Request.QueryString
if(Trim(Request.QueryString(item)) <> "" AND Len(Trim(Request.QueryString(item))) => 3) Then
strWhere = strWhere & item &" LIKE '%"& Request.QueryString(item) &"%' AND "
end if
Next
strWhere = Left(strWhere,Len(strWhere)-5)
Det förutsätter att input textfälten heter samma sak som i databasen, samt att sökorden är längre än 3 tecken, och att du bara har sökorden i querystringen.
Jo men din kod är ju inte flexibel insider.. man måste ju fylla i alla 5 fälten för att den ska returnera rätt data? Jag vill kunna fylla i 1-5 fält. Fyller jag inte i det sista fältet tex så kommer den ju försöka matcha nåt som är tomt. Om man ej fyllt i det sista fältet så ska den inte ens söka på det fältet.