ホームページ  >  記事  >  バックエンド開発  >  PHPが開発したネット投票システムについて詳しく解説

PHPが開発したネット投票システムについて詳しく解説

王林
王林オリジナル
2023-08-09 15:28:451583ブラウズ

PHPが開発したネット投票システムについて詳しく解説

PHP が開発したオンライン投票システムの詳細説明

投票システムはインターネット上で非常に一般的な機能であり、さまざまなオンライン活動、アンケートなどで広く使用されています。 , 選挙などのシナリオ。この記事では、PHPを使って簡単なオンライン投票システムを開発する方法を詳しく紹介します。

  1. データベースの作成

まず、投票関連データを保存するデータベースを作成する必要があります。データベースの名前が "vote" で、次の 2 つのテーブルが含まれているとします。

  • "polls": 投票トピックや期限などの情報を保存するために使用されるテーブル。
  • "options": 各投票オプションを保存するために使用されるテーブル。外部キーを通じて投票テーブルに関連付けられます。

以下は、データベースとテーブルを作成するための 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。