Position actuelle: Accueil> Derniers articles> Tutoriel d'implémentation du système de vote PHP: de la conception de la base de données aux exemples de code

Tutoriel d'implémentation du système de vote PHP: de la conception de la base de données aux exemples de code

M66 2025-09-19

introduction

Avec le développement continu d'Internet, les fonctions de vote en ligne sont devenues progressivement une méthode interactive importante pour divers sites Web et plateformes. En utilisant le langage PHP, nous pouvons rapidement mettre en œuvre un système de vote de base qui prend en charge le vote des utilisateurs, les statistiques des résultats et les fonctions de gestion de l'administrateur. Cet article vous montrera le processus de construction d'un système de vote de la conception de la base de données à la mise en œuvre du code.

Exigences du système

Ce système de vote comprend principalement les fonctions suivantes:

  • Les utilisateurs peuvent afficher des sujets et des options de vote
  • Les utilisateurs peuvent voter pour leurs options préférées
  • Les utilisateurs peuvent afficher le nombre de votes pour chaque option
  • Le même utilisateur ne peut pas voter à plusieurs reprises
  • Les administrateurs peuvent ajouter, modifier et supprimer des sujets et des options de vote
  • Les administrateurs peuvent voir les résultats de vote

Conception de la base de données

Afin de prendre en charge les fonctions ci-dessus, les tables de données suivantes doivent être conçues:

  • Vote_Subjects : Magasins de vote des sujets, y compris ID , titre , Created_at
  • Vote_Options : Stop Options de vote, y compris ID , Subject_id , Option_name , votes
  • Votes : stocker les enregistrements de vote des utilisateurs, y compris ID , Option_id , IP_ADdress

Implémentation de code

Voici des exemples d'implémentations PHP clés pour les systèmes de vote:

Connectez-vous à la base de données:

<?php
$host = 'localhost';
$db = 'vote_system';
$user = 'root';
$pass = '';
$conn = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
?>

Requête des sujets et des options de vote:

<?php
$sql = 'SELECT * FROM vote_subjects';
$stmt = $conn->requête ($ sql);
$ sujets = $ stmt-> fetchall (pdo :: fetch_assoc);

foreach ($ sujets comme $ sujet) {
    Echo $ sujet [&#39;titre&#39;]. &#39;<br> &#39;;;
    $ sujet_id = $ sujet [&#39;id&#39;];
    $ sql = "select * dans vote_options où sujet_id = $ sujet_id";
    $ stmt = $ con-> query ($ sql);
    $ options = $ stmt-> fetchall (PDO :: fetch_assoc);
    foreach ($ Options as $ option) {
        Echo $ option [&#39;Option_name&#39;]. &#39;:&#39;. $ option [«votes»]. &#39;votes<br> &#39;;;
    }
}
?>

Logique de vote:

<?php
$subject_id = $_POST['subject_id'];
$option_id = $_POST['option_id'];
$ip_address = $_SERVER['REMOTE_ADDR'];

$sql = "SELECT COUNT(*) FROM votes WHERE option_id = $option_id AND ip_address = '$ip_address'";
$stmt = $conn-> requête ($ sql);
$ count = $ stmt-> fetchColumn ();

if ($ count> 0) {
    Echo &#39;vous avez voté! &#39;;;
} autre {
    $ sql = "Update vote_options set votes = votes + 1 où id = $ option_id";
    $ Conn-> exec ($ sql);

    $ sql = "Insérer dans les votes (option_id, ip_address) valeurs ($ option_id, &#39;$ ip_address&#39;)";
    $ Conn-> exec ($ sql);

    Echo &#39;Le vote a réussi! &#39;;;
}
?>

Exemple de fonction administratrice:

<?php
// Créer un sujet de vote
$title = $_POST['title'];
$sql = "INSERT INTO vote_subjects (title) VALUES ('$title')";
$conn-> exec ($ sql);

// Créer l&#39;option de vote $ sujet_id = $ _POST [&#39;Subject_id&#39;];
$ option_name = $ _post [&#39;option_name&#39;];
$ sql = "Insérer dans vote_options (sujet_id, option_name, votes) valeurs ($ sujet_id, &#39;$ option_name&#39;, 0)";
$ Conn-> exec ($ sql);

// Modifier l&#39;option de vote $ id = $ _post [&#39;id&#39;];
$ option_name = $ _post [&#39;option_name&#39;];
$ sql = "Update vote_options set option_name = &#39;$ option_name&#39; où id = $ id";
$ Conn-> exec ($ sql);

// Supprimer l&#39;option de vote $ id = $ _post [&#39;id&#39;];
$ sql = "Supprimer de vote_options où id = $ id";
$ Conn-> exec ($ sql);
?>

Résumer

Cet article montre le processus de mise en œuvre d'un simple système de vote basé sur PHP, couvrant la structure de la base de données, la logique de vote des utilisateurs et les exemples de fonctionnement de l'administrateur. Ce système peut répondre aux besoins de vote de base, mais dans les applications réelles, il est également nécessaire d'ajouter la sécurité (comme la protection contre l'injection SQL), l'authentification des utilisateurs et l'optimisation d'affichage frontal pour mieux s'appliquer dans des scénarios réels.