Comment développer un système de vote en ligne simple en utilisant PHP
Le vote est une activité très courante, que ce soit dans les écoles, les entreprises ou les sociétés, diverses activités de vote sont souvent organisées. Avec le développement d’Internet, de nombreuses activités de vote peuvent désormais se dérouler en ligne. Cet article explique comment utiliser PHP pour développer un système de vote en ligne simple et fournit des exemples de code spécifiques.
1. Conception de la base de données
Tout d'abord, nous devons concevoir une base de données pour stocker les informations relatives au vote. Supposons que nous devions concevoir deux tables : la table des sujets de vote (vote_subject) et la table des options de vote (vote_option).
La table des sujets de vote doit contenir les champs suivants :
Le tableau des options de vote doit contenir les champs suivants :
2. Créer un sujet de vote
Tout d'abord, nous devons créer une page permettant aux utilisateurs de créer de nouveaux sujets de vote. Sur cette page, les utilisateurs peuvent saisir un nom de sujet et soumettre le formulaire.
Exemple de code :
<!DOCTYPE html> <html> <head> <title>创建投票主题</title> </head> <body> <h1>创建投票主题</h1> <form action="create_subject.php" method="post"> <label for="subject_name">主题名称:</label> <input type="text" name="subject_name" id="subject_name" required> <br><br> <input type="submit" value="创建"> </form> </body> </html>
Dans le fichier create_subject.php, nous pouvons recevoir les données du formulaire soumises par l'utilisateur, puis insérer le nom du sujet dans la table des sujets de vote et générer un nouvel identifiant de sujet.
Exemple de code :
<?php // 连接数据库 $servername = "localhost"; $username = "root"; $password = "123456"; $dbname = "vote_system"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接数据库失败:" . $conn->connect_error); } // 接收用户提交的表单数据 $subject_name = $_POST['subject_name']; // 将主题名称插入投票主题表 $sql = "INSERT INTO vote_subject (subject_name, create_time) VALUES ('$subject_name', NOW())"; if ($conn->query($sql) === TRUE) { $subject_id = $conn->insert_id; // 获取新的主题ID echo "创建投票主题成功,主题ID为:" . $subject_id; } else { echo "创建投票主题失败:" . $conn->error; } // 关闭数据库连接 $conn->close(); ?>
3. Ajouter des options de vote
Ensuite, nous devons créer une page pour ajouter des options de vote. Dans cette page, l'utilisateur doit saisir le nom de l'option et sélectionner le sujet auquel elle appartient.
Exemple de code :
<!DOCTYPE html> <html> <head> <title>添加投票选项</title> </head> <body> <h1>添加投票选项</h1> <form action="add_option.php" method="post"> <label for="option_name">选项名称:</label> <input type="text" name="option_name" id="option_name" required> <br><br> <label for="subject_id">所属主题:</label> <select name="subject_id" id="subject_id"> <?php // 查询所有的投票主题 $sql = "SELECT * FROM vote_subject"; $result = $conn->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<option value=" . $row['subject_id'] . ">" . $row['subject_name'] . "</option>"; } } ?> </select> <br><br> <input type="submit" value="添加"> </form> </body> </html>
Dans le fichier add_option.php, nous pouvons recevoir les données du formulaire soumises par l'utilisateur, puis insérer le nom de l'option et le sujet auquel elle appartient dans le tableau des options de vote.
Exemple de code :
<?php // 连接数据库(同上) // 接收用户提交的表单数据 $option_name = $_POST['option_name']; $subject_id = $_POST['subject_id']; // 将选项名称和所属主题插入投票选项表 $sql = "INSERT INTO vote_option (subject_id, option_name, option_count) VALUES ('$subject_id', '$option_name', 0)"; if ($conn->query($sql) === TRUE) { echo "添加投票选项成功"; } else { echo "添加投票选项失败:" . $conn->error; } // 关闭数据库连接(同上) ?>
4. Opération de vote
Enfin, nous devons créer une page permettant aux utilisateurs de voter. À partir de cette page, les utilisateurs peuvent sélectionner un sujet, puis choisir une option sur laquelle voter.
Exemple de code :
<!DOCTYPE html> <html> <head> <title>进行投票</title> </head> <body> <h1>进行投票</h1> <form action="vote.php" method="post"> <label for="subject_id">选择主题:</label> <select name="subject_id" id="subject_id"> <?php // 查询所有的投票主题 $sql = "SELECT * FROM vote_subject"; $result = $conn->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<option value=" . $row['subject_id'] . ">" . $row['subject_name'] . "</option>"; } } ?> </select> <br><br> <label for="option_id">选择选项:</label> <select name="option_id" id="option_id"> <?php // 查询指定主题下的所有选项 $subject_id = $_POST['subject_id']; $sql = "SELECT * FROM vote_option WHERE subject_id = $subject_id"; $result = $conn->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<option value=" . $row['option_id'] . ">" . $row['option_name'] . "</option>"; } } ?> </select> <br><br> <input type="submit" value="投票"> </form> </body> </html>
Dans le fichier vote.php, nous pouvons recevoir les données du formulaire soumises par l'utilisateur, puis mettre à jour le décompte des votes de l'option en fonction du thème et de l'option sélectionnés.
Exemple de code :
<?php // 连接数据库(同上) // 接收用户提交的表单数据 $subject_id = $_POST['subject_id']; $option_id = $_POST['option_id']; // 更新选项票数 $sql = "UPDATE vote_option SET option_count = option_count + 1 WHERE option_id = $option_id"; if ($conn->query($sql) === TRUE) { echo "投票成功"; } else { echo "投票失败:" . $conn->error; } // 关闭数据库连接(同上) ?>
5. Résumé
Grâce aux étapes ci-dessus, nous avons mis en œuvre un système de vote en ligne simple. Les utilisateurs peuvent terminer l'ensemble du processus de vote en créant des sujets de vote, en ajoutant des options de vote et en effectuant des opérations de vote. Bien entendu, le code ci-dessus n’est qu’un exemple, et le développement réel peut nécessiter davantage de fonctions et de sécurité.
J'espère que cet article pourra être utile aux développeurs qui débutent avec PHP, et j'espère que vous pourrez développer des systèmes de vote plus intéressants et plus pratiques !
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!