Avec l'avènement de l'ère Internet, la demande des gens de participation et d'expression des opinions devient de plus en plus forte. En tant que méthode rapide et pratique, le système de vote en ligne est devenu un outil important pour la prise de décision démocratique et la collecte d'opinions de groupe.
Dans cet article, nous présenterons comment mettre en œuvre un système de vote en ligne qui prend en charge les méthodes de vote diversifiées basées sur le langage PHP, et fournir des exemples de code complets pour aider les développeurs à réaliser leur propre plateforme de vote.
Prend en charge les méthodes de vote à choix unique, à choix multiple et à score;
Les utilisateurs peuvent voter de manière anonyme;
Les administrateurs peuvent créer des sujets de vote, éditer des options et définir le temps de vote;
Le système peut compter et afficher les résultats de vote en temps réel.
Voici des exemples de la structure de ces deux tables:
Créer un vote de table ( id int (11) pas null auto_increment, Titre Varchar (255) pas nul, start_time datetime pas nul, end_time datetime pas nul, Clé primaire (ID) ) Moteur = innodb par défaut Charset = utf8;
Créer une option de table ( id int (11) pas null auto_increment, vote_id int (11) pas nul, Texte de contenu pas nul, Clé primaire (ID), Clé vote_id (vote_id), CONSTRAINTION FK_VOTE_ID Foreign Key (vote_id) Références Vote (ID) sur Delete Cascade sur Update Cascade ) Moteur = innodb par défaut Charset = utf8;
// Affichage du thème de vote Echo "<h2> ". $ vote ['titre']."</h2> " // Options foreach ($ Options as $ option) { écho "<input type='" . $vote['type'] . "' name='option' value='" . $option['id'] . "'> ". $ Option ['Content']."<br/> " } // Soumettre le bouton Echo "<input type='submit' value="Soumettre un vote"> "
// Soumettre le vote if ($ _server ['request_method'] == 'post') { $ selectedOption = $ _post ['option']; // gérer if ($ vote ['type'] == 'radio') { // vote unique $ voteCount = 1; } elseif ($ vote ['type'] == 'Checkbox') { // Vote à choix multiple $ VoteCount = Count ($ selectedOption); } elseif ($ vote ['type'] == 'notation') { // Score de vote $ totalrating = $ _post ['total_rating']; $ VoteCount = 1; } // Mettre à jour les statistiques de vote ForEach ($ selectedOption as $ optionId) { // Effectuez l'opération de mise à jour: le coffre d'options de mise à jour Count = Count + 1 où id = $ optionId } }
// Résultats de vote de requête $ Options = $ db-> requête ("SELECT * dans l'option où vote_id =". $ Vote ['id']) -> fetchall (); foreach ($ Options as $ option) { $ votepercentage = ($ option ['count'] / $ VoteCount) * 100; Echo $ option ['Content']. ":". $ votepercentage. "%<br/> " }