denkanstoß pollsystem...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • denkanstoß pollsystem...

    Hallo zusammen ,

    wollte gerade damit anfangen einen auf MySQL basierenden poll für meine hp zu basteln , doch leider blieben die Ideen aus wie ich diesen aufbauen könnte... Könnt ihr mir vieleicht einen Rohaufbau (Tabellenaufbau,ausrechnen der einzelnen stimmen etc...) geben?
    Diggicell
    "Alkohol ist keine Antwort, aber man vergisst beim Trinken die Frage."
    (Henry Mon)


    http://www.diggicell.de

    Nun auch mit neuen Inhalten

  • #2
    so bin grad zu faul das auseinander zu nehmen ...

    ist nicht unbedingt alles ideal gewaehlt, aber das hatte ich mal
    ziemlich shcnell geproggt ...


    hier erstmal der tabellenaufbau :

    CREATE TABLE poll (
    poll_pollnumber mediumint(5) NOT NULL auto_increment,
    poll_answer1 varchar(50) NOT NULL default '',
    poll_anscount1 int(11) NOT NULL default '0',
    poll_answer2 varchar(50) NOT NULL default '',
    poll_anscount2 int(11) NOT NULL default '0',
    poll_answer3 varchar(50) NOT NULL default '',
    poll_anscount3 int(11) NOT NULL default '0',
    poll_answer4 varchar(50) NOT NULL default '',
    poll_anscount4 int(11) NOT NULL default '0',
    poll_answer5 varchar(50) NOT NULL default '',
    poll_anscount5 int(11) NOT NULL default '0',
    poll_question varchar(240) NOT NULL default '',
    poll_name varchar(50) NOT NULL default '',
    poll_active tinyint(1) NOT NULL default '0',
    poll_activeanswers tinyint(1) NOT NULL default '0',
    PRIMARY KEY (poll_pollnumber)
    ) TYPE=MyISAM;

    so eben nen bissel erklaeren :
    pollnumber = nummer des poll

    poll_answer1-5 gleich die antwortmoeglichkeiten
    poll_anscount1-5 = wie oft diese gewaehlt wurden
    poll_name = name ... brauch ich bei der adminsitration
    poll_question = frage
    poll_actiove = markiert den aktiven poll
    poll_activeanswers = wieviel antwortmoeglichleiten der poll hat

    und hier nen bissel php code :
    btw. ich arbeite mit sessions und nur angemeldete leutz koenenn voten ...
    wer nicht angemeldet ist ODER schon gevotet hat, der sieht immer nur das ergebnis ...

    ne aeltere version des polls, kannste auf www.clanuniverse.de sehen ...
    da kannste auch so voten , da setz ich danach nen cookie wenn es geth und sperr die ip, da ich aber da diesmal zu faul fuer war, duerfen nur angemeldete voten und ich speicher das bei ihren daten ...


    PHP-Code:
    <?php
    switch($_REQUEST["pollaction"])
    {

    case 
    "vote":
    if(
    $_SESSION["poll"] != "vote" || $_SESSION["poll_vote"] == "1")
        {
        die();
        }
    $vote "poll_anscount".$_POST["pollbutton"];
    $sql "UPDATE ".POLL." SET $vote$vote+1 WHERE poll_active = '1'";
    $result sqlQuery($sql);
    $_SESSION["poll_vote"] = 1;
    $sql2 "UPDATE ".USERDB." SET userdb_poll_vote = '1' WHERE userdb_id = '".$_SESSION["user_id"]."'";
    $result2 sqlQuery($sql2);
    echo 
    "Deine Stimme wurde gezaehlt";
    break;

    default:
    // wenn der Benutzer schon gevotet hat ODER nicht angemeldet ist
    if($_SESSION["userlevel"] == || $_SESSION["poll_vote"] == "1")
        {
        
    $sql "SELECT * FROM ".POLL." WHERE poll_active = '1'";
        
    $result sqlQuery($sql);
        while (
    $hit mysql_fetch_array($result))
            {
            
    $answer1 $hit["poll_answer1"];
            
    $answer2 $hit["poll_answer2"];
            
    $answer3 $hit["poll_answer3"];
            
    $answer4 $hit["poll_answer4"];
            
    $answer5 $hit["poll_answer5"];
            
    $anscount1 $hit["poll_anscount1"];
            
    $anscount2 $hit["poll_anscount2"];
            if (
    $answer3 != "")
                
    $anscount3 $hit["poll_anscount3"];
            else
                
    $anscount3 "";
            if (
    $answer4 != "")
                
    $anscount4 $hit["poll_anscount4"];
            else
                
    $anscount4 "";
            if (
    $answer5 != "")
                
    $anscount5 $hit["poll_anscount5"];
            else
                
    $anscount5 "";
            
    $question $hit["poll_question"];
            
    $pollname $hit["poll_name"];
            echo 
    "$pollname <br> $question <p> 
                    
    $anscount1 $answer1<br>
                    
    $anscount2 $answer2<br>
                    
    $anscount3 $answer3<br>
                    
    $anscount4 $answer4<br>
                    
    $anscount5 $answer5<p>";
            }
            echo 
    "<a href=main.php?action=pollarchive>Poll - Archiv</a>";
        }
    else
        {
        echo 
    "<form name=\"pollformular\" action=\"main.php\" method=\"post\">";
        
    $sql "SELECT * FROM ".POLL." WHERE poll_active = '1'";
        
    $result sqlQuery($sql);
        while (
    $hit mysql_fetch_array($result))
            {
            
    $activeanswers $hit["poll_activeanswers"];
            
    $question $hit["poll_question"];
            echo 
    $question."<p>";
            for (
    $i=1$i<=$activeanswers;$i++)
                {
                
    $answer $hit["poll_answer".$i];
                echo 
    "<input class=form type=radio name=pollbutton value=$i>$answer<br>";
                }
            }
        
    $_SESSION["poll"] = "vote";
        
        echo 
    "<input type=hidden name=pollaction value=\"vote\">
              <input class=button type=submit value=vote>
              </form>"
    ;
        }
    }
    ?>


    so administration denke ich schaffste selbst, bei fragen steh ich gern zur verfuegung ...

    greetz
    iglo

    Kommentar


    • #3
      @kapitaeniglo
      da hast du dir aber viel mühe gegeben...

      @Diggicell
      falsches forum

      *VERSCHIEB*
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        *hehe*

        naja copy & paste und die struktur der db ausgeben lassen ist ja nciht so viel arbeit ...

        muss da aber einiges aendern ....
        muesst da auch mal auf templates umstellen ....
        besseren code schreiben ... und so ...

        Kommentar


        • #5
          so nen bissel denk ich mal erklaer ich doch ....


          also ich hab da nen switch drinne ....

          der standartfall(also default)
          gibt entweder das formular aus, oder das ergebnis .

          $_SESSION["userlevel"] == 0 || $_SESSION["poll_vote"] == "1"

          wenn der userlevel == 0 ist ( dann handelt es sich bei mir um nen gast)
          oder wenn $_SESSION["poll_vote"] == "1" (dann hat der besucher schon abgestimmt

          zeigt er das ergebnis an .

          SONST :
          ausgabe des formulars inkl. button zum abschicken ...
          wichtig ich schick das formular an die datei main.php ....
          und geb ihm pollaction=vote mit ....

          $_SESSION["nextsite"] setz ich , da ich das , wenn abgestimmt wird abfrage ob der wert == "vote" ist....
          so versuch ich zu verhindern, dass mir andere seiten abstimmungen unterschieben ....

          im case "vote"

          erhoeh ich die spalte, die der user gewaehlt hat um 1.
          danach speciher ich in seiner session das er gevotet hat UND
          ich schreib bei ihm in die benutzerdaten in der db dass er abgestimmt hat .


          so steh sonst immer noch fuer rueckfragen zur verfuegung

          greetz
          iglo

          Kommentar


          • #6
            Oh , hab ich mich wohl verklickt , forum mäßig. Thx iglo. Werd versuchen mir daraus einen poll zu schustern . Aber dennoch bin ich immer fuer andere Vorschläge offen...
            "Alkohol ist keine Antwort, aber man vergisst beim Trinken die Frage."
            (Henry Mon)


            http://www.diggicell.de

            Nun auch mit neuen Inhalten

            Kommentar


            • #7
              Also dies hier:

              CREATE TABLE poll (
              poll_pollnumber mediumint(5) NOT NULL auto_increment,
              poll_answer1 varchar(50) NOT NULL default '',
              poll_anscount1 int(11) NOT NULL default '0',
              poll_answer2 varchar(50) NOT NULL default '',
              poll_anscount2 int(11) NOT NULL default '0',
              poll_answer3 varchar(50) NOT NULL default '',
              poll_anscount3 int(11) NOT NULL default '0',
              poll_answer4 varchar(50) NOT NULL default '',
              poll_anscount4 int(11) NOT NULL default '0',
              poll_answer5 varchar(50) NOT NULL default '',
              poll_anscount5 int(11) NOT NULL default '0',
              poll_question varchar(240) NOT NULL default '',
              poll_name varchar(50) NOT NULL default '',
              poll_active tinyint(1) NOT NULL default '0',
              poll_activeanswers tinyint(1) NOT NULL default '0',
              PRIMARY KEY (poll_pollnumber)
              ) TYPE=MyISAM;

              würde ich in zwei Tabellen normalisieren,
              Eine mit Frage, gültigkeitszeitraum (etwamonat, jahr) und ID
              und eine mit möglichen Antworten und counts
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                hat vieleicht noch einer n kleineren aufbau zum ausbauen?
                "Alkohol ist keine Antwort, aber man vergisst beim Trinken die Frage."
                (Henry Mon)


                http://www.diggicell.de

                Nun auch mit neuen Inhalten

                Kommentar


                • #9
                  such mal nach "umfrage datenbank".
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    findet man nichts nützliches.... schade dass der Thread nimmer ge upmarkt wird wenn was neues geschrieben wird...
                    "Alkohol ist keine Antwort, aber man vergisst beim Trinken die Frage."
                    (Henry Mon)


                    http://www.diggicell.de

                    Nun auch mit neuen Inhalten

                    Kommentar

                    Lädt...
                    X