Avatar billede trumf Nybegynder
12. november 2002 - 22:38 Der er 11 kommentarer og
1 løsning

Avanceret afstemning

Hejsa

Jeg har denne portal, hvor folk kan lave anmeldelser af vine. Så igen kan folk stemme på disse anmeldelser (ok eller ej)
Så er det, at jeg jo gerne skulle finde månedens bedst afstemte anmeldelse, så vedkommende kan få en god flaske vin.

Når folk stemmer, så gemmer jeg anmeldelsesID, brugerID (fra den der stemmer), dato og stemmen

Indtil videre bruger jeg "kun" access

Findes der en SQL der lige kan hente den anmeldelse der har fået flest ok'er i en given periode, eller skal jeg hente alle data ud og sortere på anmeldelsesID, tælle antallet op, og lægge alle resultaterne i et array, hvorefter jeg sorterer det efter antallet af stemmer og vælger den med flest ???

Uanset hvilken af løsningerne, (eller en tredie og lettere) så vil jeg jo gerne lige vide hvordan det i det store hele skal se ud.
Avatar billede loss Nybegynder
12. november 2002 - 22:44 #1
Vil det ikke være nemmere, bare at gemme OKérne (:)) når folk stemmer, sammen  med anmeldelser så have et felt der.. du opdatere hvergang folk stemmer... så er det nemt at trække den med flest OKér ud...
Avatar billede trumf Nybegynder
12. november 2002 - 22:56 #2
God ide, men det duer ikke i dette system, da man kun kan stemme på en anmeldelse en gang, derfor skal jeg jo vide hvem der har stemt.


TRUMF
www.VinGuide.net - Din Guide til God Vin
Avatar billede loss Nybegynder
12. november 2002 - 23:17 #3
det kan du da sagtens gøre alligevel.. bare gem begge data... så kan du jo inden du updater OK´i anmeldelser tjekke om de har stemt før, og hvis giv dem en fejlmeddelelse..
Avatar billede trumf Nybegynder
12. november 2002 - 23:40 #4
Så hvis der er 1000 brugere, skal jeg lave 999 felter til at gemme brugerne i. Eller måske en tekststreng med deres ID'er adskilt af kommaer....
Det kunne måske lade sig gøre, men nu har jeg altså lavet det på den anden måde, og jeg synes ikke det er særligt flot at gøre det på den måde, og heller ikke særligt godt, rent ressourcemæssigt.
Jeg vil hellere have den "store" operation lavet en gang hver måned, end lave den hver gang jeg tjekker om en bruger har anmeldt før.
Avatar billede loss Nybegynder
13. november 2002 - 10:38 #5
Som det er nu...

"Når folk stemmer, så gemmer jeg anmeldelsesID, brugerID (fra den der stemmer), dato og stemmen"

vil det ikke sige at du gemmer hver temme ?
Avatar billede trumf Nybegynder
13. november 2002 - 11:08 #6
Er det her et dansk kursus, eller kan du ikke læse ???

Jeg er klar over at det du siger kan lade sig gøre, men det er en utrolig dårlig måde at gøre tingene på. Serveren skal jo ikke lave hele udregningen hver gang en vil stemme, men kun når jeg skal finde den anmeldelse med flest stemmer.

Desuden har du kun luftet en overordnet mening. Hvad med at besvare mit retoriske spørgsmål, i stedet for at stille dumme spørgsmål!

(Jeg tillader mig at kalde et spørgsmål dumt, når svaret er givet på forhånd)
Avatar billede loss Nybegynder
13. november 2002 - 12:56 #7
Med den tonegang skal du sq ikke forvente at få noget hjælp overhovedet....

Det var faktisk dig der gav det dumme svar.. at du ikke vil det hvergang

1000 brugere = 1000 post!! hvad fanden skal det betyde, du skal jo kun gemme for hver gang der er en der stemmer.. og det gør du jo åbentbart i forvejen, som jeg så DUMT prøvede at spørge dig om

//farvel
Avatar billede trumf Nybegynder
13. november 2002 - 13:39 #8
Synd at IDG ikke kan drive en webtjeneste, for så kunne du se, at det var hvad jeg startede med at skrive.

Du skrev så, at jeg skulle gemme alle stemmerne på hver anmeldelse.
Det er ikke en særlig god ide.

Undskyld hvis jeg har såret din faglige stolthed, ved at kalde din ide for dårlig.
Avatar billede trumf Nybegynder
13. november 2002 - 13:41 #9
Når spørgsmålet ikke kan ses, så er der heller ingen der kan svare...
Avatar billede loss Nybegynder
13. november 2002 - 16:06 #10
Jeg vil skam gerne hjælpe, og føler mig ikke truffet.... Men min pointe var at du ikke behøvede at bruge det sprog pga en lille misforståelse, hvis jeg ikke lige havde opfattet det som du skrev på en anden måde... Nu skriver jeg lige det jeg havde opfattet du havde skrevet så kan vi arbejde videre derfra...


"Du skulle bruge et system så du kunne se hvilken en Afstemning der var stemt flest gange på, i forvejen gemte du i en database, når dine brugere stemte på en anmeldelse, ID, SVAR, ANDMELDELSES_ID"

Hvis jeg har forstået det rigtigt så gemmer du en record i databasen for hvergang en af dine brugere stemmer korrekt ? ellers må du lige forklare igen....

// loss
Avatar billede trumf Nybegynder
14. november 2002 - 10:43 #11
Dum misforståelse, sorry

Ja, jeg gemmer en record for hver stemme.

Det jeg søgte efter var:

SELECT anmeldid,COUNT(*) AS antal FROM tbl WHERE dato > 'xxx' AND vote = 1 GROUP BY anmeldid ORDER BY COUNT(*) DESC

Fandt det et andet sted :-)
Avatar billede loss Nybegynder
14. november 2002 - 23:02 #12
Kool løsning.. havde sq ikke lige tænkt over at man kunne bruger COUNT() i ORDER BY :)... vil jeg da lige huske fremover...

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

IT-JOB