>  기사  >  백엔드 개발  >  PHP에서 개발한 온라인 투표 시스템에 대한 자세한 설명

PHP에서 개발한 온라인 투표 시스템에 대한 자세한 설명

王林
王林원래의
2023-08-09 15:28:451553검색

PHP에서 개발한 온라인 투표 시스템에 대한 자세한 설명

PHP에서 개발한 온라인 투표 시스템에 대한 자세한 설명

투표 시스템은 인터넷에서 매우 일반적인 기능으로 다양한 온라인 활동, 설문 조사, 선거 및 기타 시나리오에서 널리 사용됩니다. 이 기사에서는 PHP를 사용하여 간단한 온라인 투표 시스템을 개발하는 방법을 자세히 소개합니다.

  1. 데이터베이스 만들기

먼저 투표 관련 데이터를 저장할 데이터베이스를 만들어야 합니다. 데이터베이스 이름이 "vote"이고 다음 두 테이블이 포함되어 있다고 가정합니다.

  • "polls": 투표 주제 및 마감일과 같은 정보를 저장하는 데 사용되는 테이블입니다.
  • "옵션": 외래 키를 통해 투표 테이블과 관련된 각 투표 옵션을 저장하는 데 사용되는 테이블입니다.

다음은 데이터베이스와 테이블을 생성하는 SQL 샘플 코드입니다.

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)
);
  1. 투표 페이지 작성

다음 단계는 투표 주제와 옵션을 표시하고 투표를 받는 프런트 엔드 페이지를 작성하는 것입니다. 사용자로부터. 다음은 간단한 HTML 및 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>
  1. 투표 요청 처리

투표 페이지에서는 "vote.php"라는 핸들러를 사용하여 사용자의 투표 요청을 수신하고 처리합니다. 다음은 샘플 코드입니다.

<?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();
?>

사용자가 투표를 제출하면 vote.php는 해당 옵션에 대한 투표 수를 업데이트하고 투표 결과를 표시하기 위해 "results.php"라는 페이지로 리디렉션됩니다.

  1. 투표 결과 표시

마지막으로 투표 결과를 표시할 결과 페이지를 작성해야 합니다. 다음은 간단한 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']}(截止日期:{$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>

위는 PHP를 사용하여 개발된 간단한 온라인 투표 시스템에 대한 자세한 소개입니다. 데이터베이스와 프런트엔드 페이지를 결합하면 사용자 투표 기능을 간단하게 구현하고 투표 결과를 집계하고 표시할 수 있습니다. 물론 실제 투표 시스템에는 특정 요구 사항을 충족하기 위해 더 많은 기능과 보안 조치가 필요할 수 있지만 이 기사에 제공된 예는 기본 투표 시스템 개발을 시작하기 위한 참조로 사용할 수 있습니다.

위 내용은 PHP에서 개발한 온라인 투표 시스템에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.