Dynamisk Poll / Omröstning

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Sasch
    Medlem
    • 2002-11-02
    • 220

    #1

    Dynamisk Poll / Omröstning

    Hej!

    Sitter och meckar med en omröstning och jobbar mot mySQL. Har dock fastnat och verkar inte komma frammåt när det kommer till att visa resultatet;

    Code:
    tbl_poll
    
     ID
     Question - Frågan
     Active - Hurvida omöstningen går att rösta i (1/0)
    
    tbl_pollanswers ( votes )
    
     uID  -> tbl_user.id
     qID  -> tbl_poll.id
     aID  -> tbl_pollalternative.id
    
    tbl_pollalternative
    
     ID
     qID
     Name
    Code:
      SELECT Name, poll.Question
        FROM pollalternative JOIN poll
          ON (pollalternative.qID = poll.ID)
       WHERE poll.Active = 1
    SQL-frågan genererar en fråga + alla alternativ till den. Jag har dock ingen aning om hur jag ska få in tbl_pollanswer samt räkna ut summan av all röster på frågan, samt alla röster på varje enskilt alternativ. Jag vill ogärna behöva loopa ut varje alternativ och ge dom var sin separata SQL-sats för att sedan göra en server-side uträkning.

    Är det möjligtvis någon som har lite hjälp att bidra med?
    "1 + 1 = 11"
  • Sasch
    Medlem
    • 2002-11-02
    • 220

    #2
    Jag har funderat lite och uppdaterat Queryn till följande:
    Det ger fortarande inte tillfredsställande resultat dock.

    Code:
      SELECT Name, poll.Question, COUNT(qID) as SubTot
        FROM pollalternative JOIN poll
          ON (pollalternative.qID = poll.ID) JOIN pollanswer
          ON (pollalternative.qID = pollanswer.qID)
       WHERE poll.Active = 1
    GROUP BY pollalternative.qID, pollalternative.uID
    "1 + 1 = 11"

    Comment

    • Gildebrand
      Medlem
      • 2009-06-06
      • 918

      #3
      Skriv ut hur tabellerna ser ut, exempel på hur datat ser ut, och hur resultatet ska se ut så kan jag nog hjälpa dig
      Kodfabriken - Webb- & apputveckling

      Comment

      • aasah
        Medlem
        • 2003-03-16
        • 3451

        #4
        Vad är det du vill ha ut? Alla frågor, deras alternativ samt hur många som valt dessa? I så fall:

        sql:
         
        SELECT
        P.Question,
        A.Name,
        COUNT(DISTINCT C.uid) -- Givet att varje person har en röst, annars COUNT(C.uid)
        FROM
        tbl_poll P
        INNER JOIN tbl_pollalternative A ON
        P.ID = A.qID -- Detta är samma ID (polls)
        LEFT JOIN tbl_pollanswers C ON -- Choices folk har gjort
        A.ID = C.aID AND -- Detta är samma ID (alternativens)
        P.ID = C.qID -- Detta är samma ID (polls)

        WHERE
        P.Active = 1

        Comment

        Working...