Avatar billede goose Nybegynder
28. september 2003 - 18:07 Der er 11 kommentarer og
1 løsning

Hjælp til søgefunktion

Jeg har bikset et CMS system sammen og lavet en søgefunktion der søger i en tabel i databasen:
<%
SQL = "select * from TBL_pages where content like '%" & request.form("seek") & "%'"
set rs = conn.execute(SQL)
%>
Da mit system smider alt i tabellen, dvs. alle tags, vil jeg gerne have ovenstående søgefunktion lavet om så den ikke søger i koder, men altså kun hvad der står mellem > og så <
Kan det lade sig gøre ?

/Goose
Avatar billede azzodiac Nybegynder
28. september 2003 - 18:13 #1
Interessant spørgsmål. Jeg lytter med. :-)
Avatar billede netro Nybegynder
28. september 2003 - 18:37 #2
Så skal du opstille en række kriterier med regulære udtryk i selve dit SQL-statement.
Hvilken database benytter du?
Avatar billede goose Nybegynder
28. september 2003 - 18:57 #3
Jeg benytter access database

/Goose
Avatar billede dawin_dk Nybegynder
28. september 2003 - 19:01 #4
umiddelbart er det næsten umuligt med en access database .. nemmeste vej var at ha en replikeret udgave af feltet hvor du havde strippet den for den slags koder ...

men hvorfor må man ikke søge i image-tags f.eks. .. søger man på "bil" er det jo relevant nok at få et dokument der indeholder bil.jpg ...
Avatar billede goose Nybegynder
28. september 2003 - 19:06 #5
dawin_dk>> det kan du selvfølgelig have ret i, men alligevel ....

/Goose
Avatar billede netro Nybegynder
28. september 2003 - 19:07 #6
Ja, så kunne du måske først fjerne alle tags (såsom <b>, <i>, <font> osv.) med replace under et feltalias, som du så søger på. Jeg har ikke tænkt det nærmere i gennem - bare en tanke.
Avatar billede dawin_dk Nybegynder
28. september 2003 - 19:10 #7
lav et felt der ligger ved siden af dit indholds-felt som er den ree tekst strippet for alle de koder... er godtnok "dobbelt" data .. men er nemmeste løsning ... der kan du fjerne alle tag nemt og bekvemt med en regular expression ..
Avatar billede goose Nybegynder
28. september 2003 - 19:14 #8
Problemet er blot, at der er tale om html editor så det er stort set umuligt at fjerne alle koder. Jeg lader lige spørgsmålet stå åbent, det kunne jo være der var en der havde en løsning.

/Goose
Avatar billede dawin_dk Nybegynder
28. september 2003 - 19:20 #9
nej .. det er nemt nok .. indsæt denne funktion:

Function ReplaceTest(tekst,patrn, replStr)
  Dim regEx, str1
  Set regEx = New RegExp
  regEx.Pattern = patrn
  regEx.global = true
  regEx.IgnoreCase = True
  ReplaceTest = regEx.Replace(tekst, replStr)
End Function


og så kalder du :
content = ReplaceTest(content,"(<[^><]*>)"," ")
Avatar billede netro Nybegynder
28. september 2003 - 19:23 #10
Husk også det hårde mellemrum.

(<[^><]*>|&nbsp;)
Avatar billede dawin_dk Nybegynder
28. september 2003 - 19:35 #11
well .. egentligt skal den vel tage alle de tegn .. (men det kan jo så også gå ud over et korrekt formatteret Ø ... dem kører du bare alm replaces på inden :)
Avatar billede goose Nybegynder
28. september 2003 - 21:20 #12
Takker ......... :o)

/Goose
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