13. marts 2005 - 13:02Der er
2 kommentarer og 2 løsninger
Søgning med apostrofer og fra flere kolonner
Hej, jeg har nogle problemer med søgninger på ord, der indeholder apostrofer, eksempelvis 'Chaminé'. Hvis ikke apostrofen er med, finder søgningen ikke posten i databasen. Det ville være et uheldigt at skulle fjerne apostroferne fra navnet – er der en anden måde, så man kan gøre søgningen ’ligeglad’ med apostrofer?!
P.t. bruger jeg: call dbstart("SELECT * FROM soegning WHERE vine_navn like '%" & felt & "%' or drue like '%" & felt & "%' or huse_navn like '%" & felt & "%' ORDER BY hus, vine_navn")
OK, næste spørgsmål. Hvis man søger på både navnet på en vin og druer(ex Chaminé Aragonez) finder søgningen heller ikke noget. Når man bruger ’or’ udelukker man så poster, der indeholder begge ord? Hvordan kan man lave en søgning, der kan klare, at man søger på flere ting?!
Spørgsmål 1, Hvilken database bruger du ? Spørgsmål 2, Nej or udelukker ikke noget. Men der er noget andet galt. Men hvis du søger på 'Chaminé Aragonez' skal hele strengen være i det felt du søger på. I dit tilfælde går jeg ud fra at i colonnen drue findes 'aragonez' og vine_navn 'Charminé'. Derfor må du dele dine søge streng op i to da begge ord aldrig vil findes i en kolonne.
Det mest effektive er hvis du kan lave et søgefelt tilhver kolonne. Hvis du ikke kan du gøre: 1) splitte din streng op og tage et ord af gangen, men tokenize( str, sep ) hvis du bruger VB. 2) Erstatte alle mellemrum i søge strengen med ','. Så dan at din søgning bliver : where vine_navn IN( 'Chaminé','Aragonez','...' ) OR drue IN ( 'Chaminé','Aragonez','...' ) osv... Hvad for et sprog skriver du dit program i ?
Søgningen skal komme fra ét søgefelt. Jeg skriver i ASP VB og er stadig på begynderstadiet. Derfor er jeg ikke helt klar på dine forslag. 1) Lyder umiddelbart som en god idé, men ingen anelse om hvordan man gør det. 2) Hvad opnår man ved at dele strengen op med komma og bruge IN?
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.