Maison > développement back-end > tutoriel php > Explication détaillée du système de vote en ligne développé par PHP

Explication détaillée du système de vote en ligne développé par PHP

王林
Libérer: 2023-08-09 15:30:01
original
1600 Les gens l'ont consulté

Explication détaillée du système de vote en ligne développé par PHP

Explication détaillée du système de vote en ligne développé par PHP

Le système de vote est une fonction très courante sur Internet. Il est largement utilisé dans diverses activités en ligne, enquêtes, élections et autres scénarios. Cet article présentera en détail comment utiliser PHP pour développer un système de vote en ligne simple.

  1. Créer une base de données

Tout d'abord, nous devons créer une base de données pour stocker les données relatives au vote. Supposons que notre base de données s'appelle « vote » et contienne les deux tables suivantes :

  • « sondages » : une table utilisée pour stocker des informations telles que les sujets de vote et les dates limites.
  • "options" : Une table utilisée pour stocker chaque option de vote, liée à la table des sondages via une clé étrangère.

Voici un exemple de code SQL pour créer la base de données et les tables :

CREATE DATABASE vote;

USE vote;

CREATE TABLE polls (
  id INT AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(255) NOT NULL,
  deadline DATE NOT NULL
);

CREATE TABLE options (
  id INT AUTO_INCREMENT PRIMARY KEY,
  poll_id INT,
  title VARCHAR(255) NOT NULL,
  votes INT DEFAULT 0,
  FOREIGN KEY (poll_id) REFERENCES polls(id)
);
Copier après la connexion
  1. Écrire la page de vote

L'étape suivante consiste à écrire la page frontale qui affiche les sujets et options de vote et reçoit les votes de la part des utilisateurs. Voici un exemple simple de code HTML et PHP :

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>在线投票系统</title>
</head>
<body>
  <h1>投票主题</h1>
  
  <?php
  // 连接数据库
  $conn = mysqli_connect("localhost", "username", "password", "vote");
  
  // 查询投票主题和选项
  $poll_id = $_GET['poll_id'];
  $poll_query = "SELECT * FROM polls WHERE id = $poll_id";
  $poll_result = mysqli_query($conn, $poll_query);
  
  if (mysqli_num_rows($poll_result) > 0) {
    // 显示投票主题
    $poll = mysqli_fetch_assoc($poll_result);
    echo "<h2>{$poll['title']}</h2>";
    
    // 查询投票选项
    $options_query = "SELECT * FROM options WHERE poll_id = $poll_id";
    $options_result = mysqli_query($conn, $options_query);
    
    if (mysqli_num_rows($options_result) > 0) {
      // 显示投票选项
      echo "<form method='POST' action='vote.php'>";
      while ($option = mysqli_fetch_assoc($options_result)) {
        echo "<input type='radio' name='option_id' value='{$option['id']}'>{$option['title']}<br>";
      }
      echo "<input type='hidden' name='poll_id' value='$poll_id'>";
      echo "<input type='submit' value='提交投票'>";
      echo "</form>";
    } else {
      echo "没有投票选项。";
    }
  } else {
    echo "投票主题不存在。";
  }
  
  // 关闭数据库连接
  mysqli_close($conn);
  ?>
  
</body>
</html>
Copier après la connexion
  1. Gestion des demandes de vote

Dans la page de vote, nous utilisons un gestionnaire appelé "vote.php" pour recevoir et traiter la demande de vote de l'utilisateur. Voici l'exemple de code :

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "vote");

// 根据用户的投票选项,更新选项的票数
$option_id = $_POST['option_id'];
$poll_id = $_POST['poll_id'];

$update_query = "UPDATE options SET votes = votes + 1 WHERE id = $option_id";
mysqli_query($conn, $update_query);

// 关闭数据库连接
mysqli_close($conn);

// 重定向到结果页面
header("Location: results.php?poll_id=$poll_id");
exit();
?>
Copier après la connexion

Lorsque l'utilisateur soumet un vote, vote.php mettra à jour le nombre de votes pour l'option et redirigera vers une page nommée "results.php" pour afficher les résultats du vote.

  1. Afficher les résultats du vote

Enfin, nous devons écrire une page de résultats pour afficher les résultats du vote. Ce qui suit est un exemple de code PHP simple :

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>投票结果</title>
</head>
<body>
  <h1>投票结果</h1>
  
  <?php
  // 连接数据库
  $conn = mysqli_connect("localhost", "username", "password", "vote");
  
  // 查询投票主题和选项
  $poll_id = $_GET['poll_id'];
  $poll_query = "SELECT * FROM polls WHERE id = $poll_id";
  $poll_result = mysqli_query($conn, $poll_query);
  
  if (mysqli_num_rows($poll_result) > 0) {
    // 显示投票主题
    $poll = mysqli_fetch_assoc($poll_result);
    echo "<h2>{$poll['title']}(截止日期:{$poll['deadline']})</h2>";
    
    // 查询投票选项
    $options_query = "SELECT * FROM options WHERE poll_id = $poll_id";
    $options_result = mysqli_query($conn, $options_query);
    
    if (mysqli_num_rows($options_result) > 0) {
      // 显示投票选项和票数
      while ($option = mysqli_fetch_assoc($options_result)) {
        echo "{$option['title']}: {$option['votes']} 票<br>";
      }
    } else {
      echo "没有投票选项。";
    }
  } else {
    echo "投票主题不存在。";
  }
  
  // 关闭数据库连接
  mysqli_close($conn);
  ?>
  
</body>
</html>
Copier après la connexion

Ce qui précède est une introduction détaillée à un système de vote en ligne simple développé en PHP. En combinant la base de données et la page frontale, nous pouvons simplement implémenter la fonction de vote des utilisateurs, compter et afficher les résultats du vote. Bien entendu, les systèmes de vote réels peuvent nécessiter davantage de fonctionnalités et de mesures de sécurité pour répondre à des besoins spécifiques, mais les exemples fournis dans cet article peuvent être utilisés comme référence pour commencer à développer un système de vote de base.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal