Avatar billede blaatand Nybegynder
16. december 2003 - 03:02 Der er 11 kommentarer og
2 løsninger

Poll, divider & udtrække info

strSQL = "SELECT * FROM T_POLLS WHERE ID ="&strTHEPOLLID
Set rs = Conn.Execute(strSQL)

strPOLLNAME = rs("M_POLL")

Response.Write("<b>"&strPOLLNAME&"</b><br><br>")

strSQL = "SELECT COUNT(*) AS AMOUNT FROM T_POLLRESULTS WHERE M_POLLLINKID ="&strTHEPOLLID
Set rs = Conn.Execute(strSQL)

strPOLLVOTINGS = rs("AMOUNT")
Response.Write(""&strPOLLOPTION&": "&strPOLLVOTINGS&"<br>")


Jeg har denne kode pt som bare registrerer hvor mange votes en poll har fået i alt. Jeg skal have lavet så den udtrækker hvilke options man kunne vælge imellem, samt procenter der har stemt på netop den.

Mit problem ligger i at jeg skal joine i sql strengen, hvilket jeg er utrolig dårlig til at overskue...

i min database har jeg følgende:

T_POLLOPTIONS:
M_POLLOPTIONS - heri ligger de forskellige muligheder man kan vælge imellem i voten.
M_POLLLINKID - Dette er IDet fra T_POLLS på den nyeste indtastede poll som er i gang.

T_POLLRESULTS:
M_POLLRESULTS - ID på hvilken mulighed der er valgt blandt de forskellige der er indtastet i databasen.
M_USERIP - IP på brugeren der har voted.
M_POLLLINKID - Dette er IDet fra T_POLLS på den nyeste indtastede poll som er i gang.

T_POLLS:
M_POLL - Selve poll spørgsmålet.
M_AUTHOR - Ham der har oprettet pollen.
M_DATE - Dato for oprettelsen af pollen.

Hvis det er lidt uoverskueligt så lad mig høre, og jeg skal prøve og uddybe mere, for det er måske lidt indviklet at se på.

150 points så der er lidt at dele ud af hvis det er et svært spm som kræver flere svar :)
Avatar billede blaatand Nybegynder
16. december 2003 - 12:34 #1
*bump* :)

Er det ikke muligt at udtrække 2 steder fra databasen i denne ene SQL streng? :(
Avatar billede eagleeye Praktikant
16. december 2003 - 13:53 #2
Dette
strSQL = "SELECT * FROM T_POLLS WHERE ID ="&strTHEPOLLID
Set rs = Conn.Execute(strSQL)

strPOLLNAME = rs("M_POLL")

Response.Write("<b>"&strPOLLNAME&"</b><br><br>")

strSQL = "SELECT COUNT(*) AS AMOUNT FROM T_POLLRESULTS WHERE M_POLLLINKID ="&strTHEPOLLID
Set rs = Conn.Execute(strSQL)

strPOLLVOTINGS = rs("AMOUNT")
Response.Write(""&strPOLLOPTION&": "&strPOLLVOTINGS&"<br>")



Kan du slå sammen til en:

strSQL = "SELECT T_POLLS.M_POLL, COUNT(*) AS AMOUNT FROM T_POLLS LEFT JOIN T_POLLRESULTS ON T_POLLS.ID = T_POLLRESULTS.M_POLLLINKID WHERE T_POLLS.ID = " & strTHEPOLLID & " GROUP BY T_POLLS.M_POLL"

Set rs = Conn.Execute(strSQL)

strPOLLNAME = rs("M_POLL")
strPOLLVOTINGS = rs("AMOUNT")
Avatar billede eagleeye Praktikant
16. december 2003 - 14:08 #3
Du behøver nok enda ikke GROUP BY delen
Avatar billede blaatand Nybegynder
16. december 2003 - 14:31 #4
Problemet er at jeg vil have procenter... har sidet med en og lavet lidt og er nået til dette intil videre:

SELECT stemmeroptions.M_POLLLINKID, stemmeroptions.ID AS M_POLLOPTIONS, [stemmeroptions]![CountOfM_POLLRESULTS]/[stemmerialt]![CountOfM_POLLRESULTS]*100 AS Fordeling FROM stemmerialt INNER JOIN stemmeroptions ON stemmerialt.M_POLLLINKID = stemmeroptions.M_POLLLINKID WHERE (((stemmeroptions.M_POLLLINKID)=2))
Avatar billede blaatand Nybegynder
16. december 2003 - 14:33 #5
Jeg har dog problemer med at hive selve navnet M_POLLOPTIONS ud der hvor jeg har lyst... den skal skrives ud fra procenterne som er hentet ud, men kan ikke rigtig greje den.
Avatar billede eagleeye Praktikant
16. december 2003 - 15:22 #6
Det som den skal tæller ialt er det det total antal stemmer i tabellen T_POLLRESULTS ?
Avatar billede blaatand Nybegynder
16. december 2003 - 16:55 #7
Jeg fik det til at dú. Har lavet nogle querys i databasen som har fået det til at gøre som jeg ville....

Querys er sku en nice ting, det må jeg læse nærmere på :)

Hvis du vil have points så kom med et svar, og du får lidt for din tid.

Heldigvis var jeg i stand til at få hjælp irl her til dag :)
Avatar billede eagleeye Praktikant
16. december 2003 - 16:58 #8
Ok her et svar så bestemmer du udfaldet ;)

Hvis du har Access har den faktisk en ganske udemærket query builder indbygget.
Avatar billede blaatand Nybegynder
16. december 2003 - 17:02 #9
Jeg brugte access til at lave  querys med... jeg fik dog hjælp, god hjælp til det. Det var ret rodet for mig som aldrig har brugt det før, men utrolig fedt at mank an gøre sådan syntes jeg :)

30 points til dig, det er kun jul en gang om året :D
Avatar billede blaatand Nybegynder
16. december 2003 - 18:03 #10
Måske du kan hjælpe mig aligevel? Jeg har problemer med min poll nu at den giver decimaltal, hvilket bliver ret grimt på siden (www.mohaa.dk)

Jeg skriver procenterne ud således her:
<%Response.Write("&nbsp;"&strPOLLVOTINGS&"%")%>

Kan jeg ikke fjerne decimalerne i variablen på en måde? så i stedet for 66.6666666666667% så bliver det bare 67% ? :)
Avatar billede blaatand Nybegynder
16. december 2003 - 18:06 #11
eller 66%, behøver ikke være så nøjagtig :)
Avatar billede blaatand Nybegynder
16. december 2003 - 18:16 #12
Fandt frem til at man kan gøre således:

int(66.6666666666667) og så vil den retunere 66 :)
Avatar billede eagleeye Praktikant
16. december 2003 - 18:39 #13
Du kan bruge enten Round eller formatnumber.

Round(66.6666666666) = 67
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