13. juli 2001 - 20:53Der er
10 kommentarer og 2 løsninger
Søgning i flere felter, med mulighed for at undlade nogle
Hej, jeg mangler et par eksempler på hvordan man gør nedenstående.
Jeg har en database med nogle felter: 5 Tekst-felter der bruges som ja/nej felter ved at have værdierne Sand/Falsk 1 Tal felt 1 Notat felt
Så skal brugeren kunne vælge om Felt1 skal være Sand/Falsk/Lige meget. Men f.eks kan brugeren vælge ikke at stille nogle krav til talfeltet, og hvis der skrives noget i talfeltet skal den tage alle dem med der er \"=\" eller større...
Jeg har selv prøvet med dette: strTekstFelt1 = Request.QueryString(\"TekstFelt1\") StrTekstFelt2 = Request.QueryString(\"TekstFelt2\")
Og så med SQL: Sql = \"SELECT * FROM Data WHERE TekstFelt1 LIKE \'%\" & strTekstFelt1 & \"%\' AND TekstFelt2 \'%\" & strTekstFelt2 & \"%\' ORDER BY Id\"
Men der kan jeg ikke få den til at tage det med der er større, eller få den til at overse dem som folk ikke udfylder.
Hvis I er i tvivl om noget så spørg. Point går til den der får det til at fungere.
For du vil søge i en tabel hvor de 5 tekst felter faktisk har 3 muligheder, men kun 2 værdier i databasen.
For at gøre det lidt lettere for dig selv, ville jeg nok anvende f.eks. et tekstfelt eller et tal felt til værdierne for de 5 tekst felter. Det vil nemlig gøre din sql sætning meget nemmere og uden en hel masse krumspring.
f.eks.
tekstfelt1: ikke angivet = 0 el. ingenting true = 1 false = 2
På den måde kan du nemt opbygge din sql sætning som du har skrevet ovenfor.
Den vil gerne hvis jeg skriver LIKE, men ikke hvis jeg skriver \"=\" ??? Hvis jeg skriver \"=\" siger den: [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/webhotel/ny/soeg.asp, linje 111
Det er ligeså snart jeg ændre LIKE til \"=\".
Denne sætning virker: Felt LIKE \'%\" & strFelt & \"%\' AND
Denne giver ovennævnte fejl: Felt = \'%\" & strFelt & \"%\' AND
Sql = \"SELECT * FROM Data WHERE TekstFelt1 LIKE \'%\" & strTekstFelt1 & \"%\' AND TekstFelt2 \'%\" & strTekstFelt2 & \"%\' \" if strtalfelt <> \"\" then sql = sql & \"AND talfelt >= \" & strTalfelt & \" \" end if sql = sql & \"ORDER BY Id\"
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.