Avatar billede tormood Nybegynder
02. september 2003 - 16:18 Der er 20 kommentarer og
1 løsning

søge etter både fornavn og etternavn

Jeg har en tabell i en sql database med ett felt for etternavn og ett felt for fornavn.

Jeg ønsker og kunne søge på "fornavn etternavn" og ikke bare "fornavn" eller bare "etternavn" hva skal jeg gjøre?
Avatar billede cdc Novice
02. september 2003 - 16:21 #1
strSQL = strSQL & " OR (fornavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (efter LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " order by fornavn"
Avatar billede tormood Nybegynder
02. september 2003 - 16:29 #2
Det virker ikke
Avatar billede tormood Nybegynder
02. september 2003 - 16:31 #3
Her er koden:

strKeyword = Replace(strKeyword,"'","'")
End If
strSQL = "SELECT etternavn, fornavn, mob, privat, adresse, epost, id FROM telefon WHERE"
strSQL = strSQL & " (etternavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (fornavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " order by fornavn"
Avatar billede cdc Novice
02. september 2003 - 16:32 #4
sorry, misforstod dit spm. lidt
Avatar billede cesil Nybegynder
02. september 2003 - 16:32 #5
måske noget i den her stil.
Det er totalt utestet og bare en ide til hvordan du kan opbygge din sql.

navn = request.form("search")
tabel = split(navn," ")

for x=0 to ubound(tabel)
    strSQL = strSQL & " OR (fornavn LIKE '%" & tabel(x) & "%')"
    strSQL = strSQL & " OR (efternavn LIKE '%" & tabel(x) & "%')"
next
strSQL = strSQL & " order by fornavn"
Avatar billede tormood Nybegynder
02. september 2003 - 16:44 #6
Jeg får feilmelding når jeg prøver ditt forslag cesil
Avatar billede cesil Nybegynder
02. september 2003 - 21:46 #7
prøv den her.
Hvis du får fejl så prøv og udskriv strSQL og post resultatet her.

<%
strKeyword = Replace(strKeyword,"'","'")
tabel = split(strKeyword," ")

strSQL = "SELECT etternavn, fornavn, mob, privat, adresse, epost, id FROM telefon WHERE "

for x=0 to ubound(tabel)
    if x=0 then
        strSQL = strSQL & " (fornavn LIKE '%" & tabel(x) & "%') OR (efternavn LIKE '%" & tabel(x) & "%') "
    else
        strSQL = strSQL & " (or fornavn LIKE '%" & tabel(x) & "%') OR (efternavn LIKE '%" & tabel(x) & "%')"
    end if
next
strSQL = strSQL & " order by fornavn" %>
Avatar billede tormood Nybegynder
02. september 2003 - 21:53 #8
Denne feilmeldinga kommer:

The page cannot be displayed
There is a problem with the page you are trying to reach and it cannot be displayed.
Avatar billede tormood Nybegynder
02. september 2003 - 22:03 #9
Jeg får denne meldinga nå:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'or'.

/sog/search.asp, line 51
Avatar billede cesil Nybegynder
02. september 2003 - 22:05 #10
prøv lige den her, og udskriv resultatet

<%
strKeyword = Replace(strKeyword,"'","'")
tabel = split(strKeyword," ")

strSQL = "SELECT etternavn, fornavn, mob, privat, adresse, epost, id FROM telefon WHERE "

for x=0 to ubound(tabel)
    if x=0 then
        strSQL = strSQL & " (fornavn LIKE '%" & tabel(x) & "%') OR (efternavn LIKE '%" & tabel(x) & "%') "
    else
        strSQL = strSQL & " (or fornavn LIKE '%" & tabel(x) & "%') OR (efternavn LIKE '%" & tabel(x) & "%')"
    end if
next
strSQL = strSQL & " order by fornavn"

response.write strSQL
response.end
%>
Avatar billede cesil Nybegynder
02. september 2003 - 22:06 #11
rettelse

<%
strKeyword = Replace(strKeyword,"'","'")
tabel = split(strKeyword," ")

strSQL = "SELECT etternavn, fornavn, mob, privat, adresse, epost, id FROM telefon WHERE "

for x=0 to ubound(tabel)
    if x=0 then
        strSQL = strSQL & " (fornavn LIKE '%" & tabel(x) & "%') OR (efternavn LIKE '%" & tabel(x) & "%') "
    else
        strSQL = strSQL & " or (fornavn LIKE '%" & tabel(x) & "%') OR (efternavn LIKE '%" & tabel(x) & "%')"
    end if
next
strSQL = strSQL & " order by fornavn"

response.write strSQL
response.end
%>
Avatar billede tormood Nybegynder
02. september 2003 - 22:11 #12
her er neste reultat:

SELECT etternavn, fornavn, mob, privat, adresse, epost, id FROM telefon WHERE (fornavn LIKE '%tormod%') OR (etternavn LIKE '%tormod%') or (fornavn LIKE '%almås%') OR (etternavn LIKE '%almås%') order by fornavn

jeg søkte på tormod almås
Avatar billede cesil Nybegynder
02. september 2003 - 22:13 #13
det ser rigtigt ud. Så fjern

response.write strSQL
response.end

og så skulle det gerne virke
:-)
Avatar billede tormood Nybegynder
02. september 2003 - 22:17 #14
Problemet er at når jeg søker på feks. "Tormod Almås" så kommer det opp alle navn som har "almås" som efternavn. Jeg vil at når jeg søker på "tormod almås" så skal kun det ene navnet komme opp.
Avatar billede cesil Nybegynder
02. september 2003 - 22:24 #15
så prøv den her

<%
strKeyword = Replace(strKeyword,"'","'")
tabel = split(strKeyword," ")

strSQL = "SELECT etternavn, fornavn, mob, privat, adresse, epost, id FROM telefon WHERE "

for x=0 to ubound(tabel)
    if x=0 then
        strSQL = strSQL & " (fornavn LIKE '%" & tabel(x) & "%') "
    else
        strSQL = strSQL & " or (efternavn LIKE '%" & tabel(x) & "%')"
    end if
next
strSQL = strSQL & " order by fornavn"

%>
Avatar billede tormood Nybegynder
02. september 2003 - 22:27 #16
Ingen endring i resultatet.
Avatar billede cesil Nybegynder
02. september 2003 - 22:28 #17
prøv lige og tilføj

response.write strSQL
response.end

samme sted som før
Avatar billede tormood Nybegynder
02. september 2003 - 22:30 #18
Her kommer resultatet!

SELECT etternavn, fornavn, mob, privat, adresse, epost, id FROM telefon WHERE (fornavn LIKE '%tormod%') or (etternavn LIKE '%almås%')
Avatar billede cesil Nybegynder
02. september 2003 - 22:31 #19
<%
strKeyword = Replace(strKeyword,"'","'")
tabel = split(strKeyword," ")

strSQL = "SELECT etternavn, fornavn, mob, privat, adresse, epost, id FROM telefon WHERE "

for x=0 to ubound(tabel)
    if x=0 then
        strSQL = strSQL & " (fornavn LIKE '%" & tabel(x) & "%') "
    else
        strSQL = strSQL & " and (efternavn LIKE '%" & tabel(x) & "%')"
    end if
next
strSQL = strSQL & " order by fornavn"

%>
Avatar billede tormood Nybegynder
02. september 2003 - 22:36 #20
Det virker!! Mange takk for tålmodig hjelp!!
Avatar billede cesil Nybegynder
02. september 2003 - 22:36 #21
det var så lidt ;-)
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