Avatar billede kroger Nybegynder
15. juni 2002 - 22:42 Der er 13 kommentarer og
1 løsning

database kald

Okay, det er ikke helt min dag, så nu kommer jeg lige med det 34090 spørgsmål..

Jeg er igang med at lave en søgefunktion hvor der skal kunne søges på flere ord, men den gider ikke helt som jeg gider.

HEr er koden jeg bruger:

search = "dette er en test"

searcharra = split(search," ")

key = " like '%"
For n = LBound(searcharra) To UBound(searcharra)
key = key & searcharra(n) & "%' AND like '%"
next

  laengde = Len(key) -11
strBogstav = Left(key,laengde)

    tempSQL_query = "SELECT navn, by1, adresse, postnr, tlf, email, website, beskrivelse1, beskrivelse, egen_side, kategori FROM ba WHERE"
tempSQL_query = tempSQL_query & " (navn" & key & ")"
tempSQL_query = tempSQL_query & " OR (by1" & key & ")"
tempSQL_query = tempSQL_query & " OR (adresse" & key & ")"
tempSQL_query = tempSQL_query & " OR (postnr" & key & ")"
tempSQL_query = tempSQL_query & " OR (tlf" & key & ")"
tempSQL_query = tempSQL_query & " OR (email" & key & ")"
tempSQL_query = tempSQL_query & " OR (website" & key & ")"
tempSQL_query = tempSQL_query & " OR (beskrivelse1" & key & ")"
tempSQL_query = tempSQL_query & " OR (beskrivelse" & key & ")"
tempSQL_query = tempSQL_query & " OR (kategori" & key & ") ORDER BY navn"

For mig ser sql outputtet rigtig nok ud, men det siger: Incorrect syntax near the keyword 'like'.

Håber i kan hjælpe...
Avatar billede kroger Nybegynder
15. juni 2002 - 22:45 #1
hvis det kan hjælpe bruger jeg mssql
Avatar billede kroger Nybegynder
15. juni 2002 - 22:47 #2
Jeg opdagede lige en skrivefejl: strbogstav = Left(key, laengde) == key = Left(key, laengde)

Hvilket dog ikke har indflydelse på resultatet
Avatar billede eagleeye Praktikant
15. juni 2002 - 22:47 #3
Når du søger på AND bestder det at du skal finde alt hvad der står. Eks: hvis du skriver "dette er en test"
Så for du får den frem skal en post indeholde dette OG er OG en OG test, måske det skulle være OR ???

Eller så prøve at udskrive din SQL så er det tit meget lettere at se hvad der kan være galt med den:

...
tempSQL_query = tempSQL_query & " OR (kategori" & key & ") ORDER BY navn"

Response.write tempSQL_query  '<--- indsæt efter du har lavet SQL'en
Avatar billede kroger Nybegynder
15. juni 2002 - 22:49 #4
Det er også meningen at hvis en søger på to ord SKAL den indeholde de 2 ord...
Avatar billede kroger Nybegynder
15. juni 2002 - 22:51 #5
Og jeg har som sagt prøvet at udskrive sql otputtet, men for mig ser det nu rigtig nok ud...
Avatar billede eagleeye Praktikant
15. juni 2002 - 22:52 #6
Ok.. så prøv at udskrive den og vis resultatet her.
Avatar billede kroger Nybegynder
15. juni 2002 - 22:54 #7
navn, by1, adresse, postnr, tlf, email, website, beskrivelse1, beskrivelse, egen_side, kategori FROM ba WHERE kategori like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) ORDER BY navnSELECT navn, by1, adresse, postnr, tlf, email, website, beskrivelse1, beskrivelse, egen_side, kategori FROM ba WHERE (navn like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) OR (by1 like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) OR (adresse like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) OR (postnr like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) OR (tlf like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) OR (email like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) OR (website like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) OR (beskrivelse1 like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) OR (beskrivelse like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) OR (kategori like '%dette'% AND like '%er'% AND like '%en'% AND like '%test'% ) ORDER BY navn
Avatar billede eagleeye Praktikant
15. juni 2002 - 22:55 #8
arh jeg tror jeg vil gætte på det for der kommer til at stå

navn LIKE '%dette%' AND LIKE '%er%'

Det gør ikke der skal et kolonne navn på hver LIKE sådan her:

navn LIKE '%dette%' AND navn LIKE '%er%'
Avatar billede eagleeye Praktikant
15. juni 2002 - 23:10 #9
Jeg har engang lavet et script til søgening med flere ord i en linie i et andet spørgsmål. Måske det kan give inspiration:
http://www.eksperten.dk/spm/120492
Avatar billede kroger Nybegynder
15. juni 2002 - 23:26 #10
Jeg har lige rettet den til, men får nu denne fejl:

Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the character string ') ORDER BY navn'.

Mit ouput er:

SELECT navn, by1, adresse, postnr, tlf, email, website, beskrivelse1, beskrivelse, egen_side, kategori FROM ba WHERE (navn like '%dette%' AND navn like '%er%' AND navn like '%en%' AND navn like '%test%') OR (by1 like '%dette%' AND by1 like '%er%' AND by1 like '%en%' AND by1 like '%test%') OR (adresse like '%dette%' AND adresse like '%er%' AND adresse like '%en%' AND adresse like '%test%') OR (postnr like '%dette%' AND postnr like '%er%' AND postnr like '%en%' AND postnr like '%test%') OR (tlf like '%dette%' AND tlf like '%er%' AND tlf like '%en%' AND tlf like '%test%') OR (email like '%dette%' AND email like '%er%' AND email like '%en%' AND email like '%test%') OR (website like '%dette%' AND website like '%er%' AND website like '%en%' AND website like '%test%) OR (beskrivelse1 like '%dette%' AND beskrivelse1 like '%er%' AND beskrivelse1 like '%en%' AND beskrivelse1 like '%test%') OR (beskrivelse like '%dette%' AND beskrivelse like '%er%' AND beskrivelse like '%en%' AND beskrivelse like '%test%') OR (kategori like '%dette%' AND kategori like '%er%' AND kategori like '%en%' AND kategori like '%test%') ORDER BY navn
Avatar billede eagleeye Praktikant
15. juni 2002 - 23:38 #11
ja... jeg kan ikke lige se nogen fejl men det bestyder vel at der mangler en ' eller er en ' for meget...
Skal MSSQL sql sætninger ikke afsluttes med ; ?
Avatar billede kroger Nybegynder
16. juni 2002 - 00:24 #12
Du havde ret, den virker nu, jeg takker dig med stor kyshånd, og så får du lige lidt exttra point for tidsbesværet, så angiv lige et svar
Avatar billede eagleeye Praktikant
16. juni 2002 - 00:28 #13
Ok :) her er et svar.
Avatar billede kroger Nybegynder
16. juni 2002 - 00:29 #14
det var en ' jeg manglede
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