08. september 2003 - 09:55Der er
19 kommentarer og 1 løsning
Match funktion i asp
Så er der 200pt.
jeg har følgende:
SQLmatch = "select f1.filmid , count(f1.filmid) as popularity from filmkarakter f1 where ((f1.filmid <> "&filmmatch&") AND (f1.brugerid <> "&brugernr&") AND f1.karakter=6) and f1.brugerid in (Select f2.brugerid from filmkarakter f2 where (f2.filmid="&filmmatch&" AND f2.karakter=6 AND f2.brugerid <> "&brugernr&")) group by f1.filmid order by 2 desc"
Denne funktionen virker ved at jeg tager en film og matcher op mod databasen. Nu er det bare sådan at jeg skal match et ukendt antal film op mod databasen, hvordan skriver jeg funktionen om. Jeg havde prøvet med et loop, men det giver mig jo de samme film flere gange.
Eks hvis det er en streng med komma imellem og det er Access/MSSQL database, så kan man melig bruger IN
filmmatch = "23, 45"
SQLmatch = "select f1.filmid , count(f1.filmid) as popularity from filmkarakter f1 where ((f1.filmid not IN ("&filmmatch&")) AND (f1.brugerid <> "&brugernr&") AND f1.karakter=6) and f1.brugerid in (Select f2.brugerid from filmkarakter f2 where (f2.filmid IN ("&filmmatch&") AND f2.karakter=6 AND f2.brugerid <> "&brugernr&")) group by f1.filmid order by 2 desc"
Lad os lige tage SQL'en så: Dette filmid <> "&filmmatch&") AND (f1.brugerid <> "&brugernr&") AND f1.karakter=6)
Gør den vil finde alle fil hvor filID er forskellig fra det man har i filmmatch og brugerID er forskellig fra brugernr og karaker = 6
Derudover er dette på: f1.brugerid in (Select f2.brugerid from filmkarakter f2 where (f2.filmid="&filmmatch&" AND f2.karakter=6 AND f2.brugerid <> "&brugernr&"))
Det betyder; og brugerID skal være lig brugerID i record hvor (filmID=filmmatch og karakter=6 of brugerID forskellige fra brugernr)
Der er 4 film som har fået karaktere 6 på 4 forskellige brugernavn.
Jeg skal have de "filmid" ud, som andre har set, som de har givet karakteren 6. Men vi skal have mindst en film tilfælles, som vi begge har givet karakteren 6.
Jeg er brugerid=4 og har set film1 og film2 brugerid=2 har også set film1 og film2, men også film3, som han alle har givet karakteren 6. Dette filmid skal jeg så have ud.
Diise filmid bruger jeg så bruger i den næste forspørgelse i et loop.
eagleeye du kan godt slappe af fandt problemmet, og det var at jeg kørte et loop med forspørgelsen og da den retunere 2 ens fandt den også 2 ens...hmm det giver ikke mening, men altså en ændring af: If NOT (RSmatch.BOF AND RSmatch.EOF) Then do until RSmatch.eof
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.