Avatar billede Slettet bruger
01. oktober 2001 - 08:44 Der er 5 kommentarer og
1 løsning

SELECT

Jeg har en database hvori der er en tabel der hedder \"Kategori\" og en der hedder \"Indhold\". Nu vil jeg så i forbindelse med en søgefunktion gerne hente den data der svarer til brugerens søgeord.

Feks hvis han/hun søger på \"biler\" så søges der i databasen både i kategorien \"Kategorier\" samt \"Indhold\".

Min SQL ser således ud men her viser den et resultat for hver kategori også selvom ordet ikke forekommer i de pågældende kategorier...

strSQL = \"SELECT indhold.AnnID, indhold.Titel, Remark1,indhold.Remark2,Kategorier.kapitel,Kategorier.Kategori, Kategorier.ID From indhold,Kategorier Where Indhold.KatID = Kategorier.ID AND\"
strSQL = strSQL & \" (Titel LIKE \'%\" & strKeyword & \"%\')\"

osv osv...
Avatar billede keysersoze Ekspert
01. oktober 2001 - 08:56 #1
her vælger du alle - for at sortere nogle fra skal du bruge en \"WHERE\"

fx

select * from TABEL where titel like \'%\" & strKeyword & \"%\'\"

se mere her:

http://www.activeserverpages.dk/aspdigital/kapitel2/search.asp
Avatar billede Slettet bruger
01. oktober 2001 - 09:03 #2
ja men læs lige sql sætningen igen...

Where Indhold.KatID = Kategorier.ID AND\"
strSQL = strSQL & \" (Titel LIKE \'%\" & strKeyword & \"%\')\"

Den skal også hente fra to forskellige tabeller..



Avatar billede keysersoze Ekspert
01. oktober 2001 - 09:10 #3
ja - men du bruger AND, og det betyder jo \"og\". du vil jo have nogle specielle foresprugt, og du er derfor nødt til at bruge en WHERE fx

Where Indhold.KatID = Kategorier.ID AND WHERE\"
strSQL = strSQL & \" (Titel LIKE \'%\" & strKeyword & \"%\')\"
Avatar billede Slettet bruger
01. oktober 2001 - 09:59 #4
Og hvis jeg gør følgende...

strSQL = \"SELECT indhold.AnnID, indhold.Titel, indhold.Adresse, indhold.Post, indhold.City,indhold.Tlf,indhold.Fax,indhold.Email,indhold.Remark,indhold.Remark1,indhold.Remark2, Kategorier.kapitel,Kategorier.Kategori, Kategorier.ID From indhold,Kategorier Where Indhold.KatID = Kategorier.ID AND Where\"
strSQL = strSQL & \" (Titel LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Adresse LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Post LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (City LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Tlf LIKE \'%\" & strKeyword & \"%\')\"


så sker der følgende:

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

[Microsoft][ODBC Microsoft Access Driver] Undefined function \'where\' in expression.

/bogen/search.asp, line 119

Avatar billede Slettet bruger
01. oktober 2001 - 10:02 #5
ja nu kom jeg jo selvfølgelig til at acceptere dit svar men det var en fejl...
Avatar billede keysersoze Ekspert
01. oktober 2001 - 12:01 #6
ok - så må der nok ikke bruges to where alligevel...

så har jeg lige et spm.: hvad er meningen med din Indhold.KatID = Kategorier.ID? i indhold.katid findes der vel under alle omstændigheder kun id\'er der findes i kategori.id - eller hvad?
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