Position actuelle: Accueil> Derniers articles> PHP réalise un système de vote en ligne avec des méthodes de vote diversifiées, en soutenant un choix à choix unique, à choix multiple et un vote de notation

PHP réalise un système de vote en ligne avec des méthodes de vote diversifiées, en soutenant un choix à choix unique, à choix multiple et un vote de notation

M66 2025-06-12

Système de vote en ligne avec des méthodes de vote diversifiées mises en œuvre par PHP

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.

Analyse des exigences du système de vote

Lors de la conception d'un système de vote en ligne, la première chose à faire est de clarifier les besoins du système. Voici une brève analyse des exigences:
  1. Prend en charge les méthodes de vote à choix unique, à choix multiple et à score;

  2. Les utilisateurs peuvent voter de manière anonyme;

  3. Les administrateurs peuvent créer des sujets de vote, éditer des options et définir le temps de vote;

  4. Le système peut compter et afficher les résultats de vote en temps réel.

Conception de la base de données

Pour stocker les données de vote, nous avons créé deux tables de données principales dans la base de données MySQL: le tableau «Vote» est utilisé pour stocker les informations sur le sujet de vote et le tableau «Option» est utilisé pour stocker les options de vote.

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;

Conception frontale

La section frontale est conçue pour afficher le thème de vote, permettre aux utilisateurs de choisir les options de vote et d'afficher les résultats de vote. Voici un exemple de mise en œuvre frontal simple:
// Affichage du thème de vote Echo "<h2> ". $ vote [&#39;titre&#39;]."</h2> "

// Options foreach ($ Options as $ option) {
  écho "<input type='" . $vote['type'] . "' name='option' value='" . $option['id'] . "'> ". $ Option [&#39;Content&#39;]."<br/> "
}

// Soumettre le bouton Echo "<input type='submit' value="Soumettre un vote"> "

Implémentation backend

La tâche principale de la partie backend est de traiter les données de vote soumises par les utilisateurs et de mettre à jour les résultats du vote en temps réel. Voici un exemple de code PHP simplifié:
// Soumettre le vote if ($ _server [&#39;request_method&#39;] == &#39;post&#39;) {
  $ selectedOption = $ _post [&#39;option&#39;];

  // gérer if ($ vote [&#39;type&#39;] == &#39;radio&#39;) {
    // vote unique $ voteCount = 1;
  } elseif ($ vote [&#39;type&#39;] == &#39;Checkbox&#39;) {
    // Vote à choix multiple $ VoteCount = Count ($ selectedOption);
  } elseif ($ vote [&#39;type&#39;] == &#39;notation&#39;) {
    // Score de vote $ totalrating = $ _post [&#39;total_rating&#39;];
    $ VoteCount = 1;
  }

  // Mettre à jour les statistiques de vote ForEach ($ selectedOption as $ optionId) {
    // Effectuez l&#39;opération de mise à jour: le coffre d&#39;options de mise à jour Count = Count + 1 où id = $ optionId
  }
}

Résultats de vote de requête

Une fois le vote terminé, le système calcule et affiche le pourcentage de votes pour chaque option en fonction du nombre de votes pour les options:
// Résultats de vote de requête $ Options = $ db-> requête ("SELECT * dans l&#39;option où vote_id =". $ Vote [&#39;id&#39;]) -> fetchall ();
foreach ($ Options as $ option) {
  $ votepercentage = ($ option [&#39;count&#39;] / $ VoteCount) * 100;
  Echo $ option [&#39;Content&#39;]. ":". $ votepercentage. "%<br/> "
}

Résumer

Grâce à l'exemple de code ci-dessus, nous pouvons créer un système de vote en ligne qui prend en charge diverses méthodes de vote. Le système peut répondre aux besoins de vote de l'utilisateur et fournit aux administrateurs des fonctions de statistiques de vote en temps réel. Les développeurs peuvent personnaliser davantage le système en fonction des besoins réels et ajouter plus d'options et de fonctions de vote, ce qui rend le système de vote en ligne plus flexible et pratique.