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.
Ce système de vote comprend principalement les fonctions suivantes:
Afin de prendre en charge les fonctions ci-dessus, les tables de données suivantes doivent être conçues:
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 ['titre']. '<br> ';; $ sujet_id = $ sujet ['id']; $ 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 ['Option_name']. ':'. $ option [«votes»]. 'votes<br> ';; } } ?>
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 'vous avez voté! ';; } 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, '$ ip_address')"; $ Conn-> exec ($ sql); Echo 'Le vote a réussi! ';; } ?>
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'option de vote $ sujet_id = $ _POST ['Subject_id']; $ option_name = $ _post ['option_name']; $ sql = "Insérer dans vote_options (sujet_id, option_name, votes) valeurs ($ sujet_id, '$ option_name', 0)"; $ Conn-> exec ($ sql); // Modifier l'option de vote $ id = $ _post ['id']; $ option_name = $ _post ['option_name']; $ sql = "Update vote_options set option_name = '$ option_name' où id = $ id"; $ Conn-> exec ($ sql); // Supprimer l'option de vote $ id = $ _post ['id']; $ sql = "Supprimer de vote_options où id = $ id"; $ Conn-> exec ($ sql); ?>
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.