Maison >développement back-end >tutoriel php >Comment développer un système de vote simple en utilisant PHP

Comment développer un système de vote simple en utilisant PHP

王林
王林original
2023-09-20 16:07:471162parcourir

Comment développer un système de vote simple en utilisant PHP

Comment utiliser PHP pour développer un système de vote simple, des exemples de code spécifiques sont nécessaires

Introduction :
Avec le développement d'Internet, l'application des systèmes de vote devient de plus en plus populaire, que ce soit pour des études de marché, des élections ou un vote événementiel, un système de vote facile à utiliser et efficace est essentiel. En tant que langage de programmation populaire, PHP peut nous aider à développer rapidement un système de vote simple et entièrement fonctionnel. Cet article expliquera comment développer un système de vote simple en utilisant PHP et fournira des exemples de code spécifiques.

1. Analyse des exigences fonctionnelles du système :
Avant de commencer à écrire du code, nous devons clarifier les exigences et les fonctions du système. Un système de vote de base devrait avoir les fonctions suivantes :

  1. Fonctions d'enregistrement et de connexion des utilisateurs.
  2. Créez des sujets et des options de sondage.
  3. Les utilisateurs peuvent parcourir et participer au vote.
  4. Afficher les résultats du vote.

2. Conception de la base de données :
Afin de sauvegarder les informations sur les utilisateurs, les sujets et options de vote ainsi que les résultats du vote, nous devons concevoir des tables de base de données. Ce qui suit est un exemple simple de conception de base de données :

  1. Table des utilisateurs (utilisateurs) :

    • id : ID utilisateur, type entier, clé primaire
    • nom d'utilisateur : nom d'utilisateur, type de chaîne
    • mot de passe : mot de passe, type de chaîne
    • create_at : heure de création, date et type d'heure
  2. Tableau de sondages (sondages) :

    • id : identifiant du sujet de vote, type entier, clé primaire
    • title : titre du sujet de vote, type de chaîne
    • created_by : utilisateur créé ID, type entier (associé à la table utilisateur)
    • created_at : heure de création, type datetime
  3. Table des options de sondage (options) :

    • id : ID de l'option, type entier, clé primaire
    • poll_id : sujet du sondage ID, type entier (associé à la table des sujets de vote)
    • option_text : texte de l'option, type de chaîne
  4. Tableau des résultats du sondage (votes) :

    • id : ID du résultat du vote, type entier, clé primaire
    • poll_id : ID du sujet de vote, type entier (associé à la table des sujets de vote)
    • option_id : ID d'option, type entier (associé à la table des options de vote)
    • user_id : ID utilisateur, type entier (associé à la table des utilisateurs)

3 . Étapes de développement du système :

  1. Créer une base de données et se connecter :
    Tout d'abord, nous devons créer une base de données nommée "voting_system" et nous connecter à la base de données :

    $conn = mysqli_connect("localhost", "root", "", "voting_system");
    if (!$conn) {
        die("数据库连接失败:" . mysqli_connect_error());
    }
  2. Fonctions d'enregistrement et de connexion des utilisateurs :
    L'utilisateur a besoin de la capacité de inscrivez-vous et connectez-vous au système. Voici un exemple de code simple :

    a. Inscription de l'utilisateur :

    $username = $_POST['username'];
    $password = $_POST['password'];
    
    $hashed_password = password_hash($password, PASSWORD_DEFAULT);
    
    $sql = "INSERT INTO users (username, password) VALUES ('$username', '$hashed_password')";
    
    if (mysqli_query($conn, $sql)) {
        echo "注册成功!";
    } else {
        echo "注册失败:" . mysqli_error($conn);
    }

    b. Connexion de l'utilisateur :

    $username = $_POST['username'];
    $password = $_POST['password'];
    
    $sql = "SELECT * FROM users WHERE username='$username'";
    $result = mysqli_query($conn, $sql);
    
    if (mysqli_num_rows($result) > 0) {
        $row = mysqli_fetch_assoc($result);
        if (password_verify($password, $row['password'])) {
            echo "登录成功!";
        } else {
            echo "密码错误!";
        }
    } else {
        echo "用户不存在!";
    }
  3. Création de sujets et d'options de vote :
    La création de sujets et d'options de vote nécessite que l'utilisateur soit connecté et dispose du autorisations appropriées. Voici un exemple de code simple :

    a. Créez un sujet de vote :

    $title = $_POST['title'];
    $created_by = $_SESSION['user_id'];
    
    $sql = "INSERT INTO polls (title, created_by) VALUES ('$title', '$created_by')";
    
    if (mysqli_query($conn, $sql)) {
        echo "投票主题创建成功!";
    } else {
        echo "投票主题创建失败:" . mysqli_error($conn);
    }

    b. Créez une option de vote :

    $poll_id = $_POST['poll_id'];
    $option_text = $_POST['option_text'];
    
    $sql = "INSERT INTO options (poll_id, option_text) VALUES ('$poll_id', '$option_text')";
    
    if (mysqli_query($conn, $sql)) {
        echo "投票选项创建成功!";
    } else {
        echo "投票选项创建失败:" . mysqli_error($conn);
    }
  4. Participation de l'utilisateur au vote :
    Les utilisateurs doivent parcourir le sujet de vote et sélectionner une option de vote pour voter. Voici un exemple de code simple :

    a. Afficher les sujets et les options de vote :

    $sql = "SELECT * FROM polls";
    $result = mysqli_query($conn, $sql);
    
    while ($row = mysqli_fetch_assoc($result)) {
        echo "投票主题:" . $row['title'] . "<br>";
    
        $poll_id = $row['id'];
        $sql_options = "SELECT * FROM options WHERE poll_id='$poll_id'";
        $result_options = mysqli_query($conn, $sql_options);
    
        while ($row_option = mysqli_fetch_assoc($result_options)) {
            echo "<input type='checkbox' name='option_ids[]' value='" . $row_option['id'] . "'>" . $row_option['option_text'] . "<br>";
        }
    
        echo "<hr>";
    }

    b. Gérer les votes des utilisateurs :

    $option_ids = $_POST['option_ids'];
    
    foreach ($option_ids as $option_id) {
        $sql = "INSERT INTO votes (poll_id, option_id, user_id) VALUES ('$poll_id', '$option_id', '$user_id')";
    
        if (mysqli_query($conn, $sql)) {
            echo "投票成功!";
        } else {
            echo "投票失败:" . mysqli_error($conn);
        }
    }
  5. Afficher les résultats du vote :
    Les résultats du vote peuvent être obtenus en comptant le nombre de votes pour chaque option. . Voici un exemple de code simple :

    a. Résultats de vote statistiques :

    $poll_id = $_GET['poll_id'];
    
    $sql = "SELECT option_id, COUNT(*) AS vote_count FROM votes WHERE poll_id='$poll_id' GROUP BY option_id";
    $result = mysqli_query($conn, $sql);
    
    while ($row = mysqli_fetch_assoc($result)) {
        $option_id = $row['option_id'];
        $vote_count = $row['vote_count'];
    
        $sql_option = "SELECT option_text FROM options WHERE id='$option_id'";
        $result_option = mysqli_query($conn, $sql_option);
        $row_option = mysqli_fetch_assoc($result_option);
    
        echo $row_option['option_text'] . ": " . $vote_count . " 票<br>";
    }

Conclusion :
Cet article présente comment utiliser PHP pour développer un système de vote simple et fournit des exemples de code spécifiques. Grâce aux étapes ci-dessus, nous pouvons mettre en œuvre les fonctions de base du système de vote telles que l'enregistrement et la connexion des utilisateurs, la création de sujets et d'options de vote, la participation des utilisateurs au vote et l'affichage des résultats du vote. En fonction des besoins réels, nous pouvons également procéder à une optimisation et une extension supplémentaires. J'espère que cet article vous aidera !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Articles Liés

Voir plus