Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des von PHP entwickelten Online-Abstimmungssystems

Detaillierte Erläuterung des von PHP entwickelten Online-Abstimmungssystems

王林
王林Original
2023-08-09 15:28:451553Durchsuche

Detaillierte Erläuterung des von PHP entwickelten Online-Abstimmungssystems

Detaillierte Erklärung des von PHP entwickelten Online-Abstimmungssystems

Das Abstimmungssystem ist eine sehr häufige Funktion im Internet. Es wird häufig bei verschiedenen Online-Aktivitäten, Umfragen, Wahlen und anderen Szenarien verwendet. In diesem Artikel wird detailliert beschrieben, wie Sie mit PHP ein einfaches Online-Abstimmungssystem entwickeln.

  1. Datenbank erstellen

Zuerst müssen wir eine Datenbank erstellen, um wahlbezogene Daten zu speichern. Angenommen, unsere Datenbank heißt „Abstimmung“ und enthält die folgenden zwei Tabellen:

  • „Umfragen“: eine Tabelle, in der Informationen wie Abstimmungsthemen und Fristen gespeichert werden.
  • "Optionen": Eine Tabelle zum Speichern jeder Abstimmungsoption, die über einen Fremdschlüssel mit der Umfragetabelle verknüpft ist.

Hier ist der SQL-Beispielcode zum Erstellen der Datenbank und der Tabellen:

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. Schreiben der Abstimmungsseite

Der nächste Schritt besteht darin, die Frontend-Seite zu schreiben, die die Abstimmungsthemen und -optionen anzeigt und die Stimmen des Benutzers empfängt . Hier ist ein einfaches HTML- und PHP-Codebeispiel:

<!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. Umgang mit Abstimmungsanfragen

Auf der Abstimmungsseite verwenden wir einen Handler namens „vote.php“, um die Abstimmungsanfrage des Benutzers zu empfangen und zu verarbeiten. Das Folgende ist der Beispielcode:

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

Wenn der Benutzer eine Abstimmung abgibt, aktualisiert vote.php die Anzahl der Stimmen für die Option und leitet zu einer Seite namens „results.php“ weiter, um die Abstimmungsergebnisse anzuzeigen.

  1. Abstimmungsergebnisse anzeigen

Abschließend müssen wir eine Ergebnisseite schreiben, um die Abstimmungsergebnisse anzuzeigen. Das Folgende ist ein einfaches PHP-Codebeispiel:

<!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>

Das Obige ist eine detaillierte Einführung in ein einfaches Online-Abstimmungssystem, das mit PHP entwickelt wurde. Durch die Kombination der Datenbank und der Frontend-Seite können wir einfach die Benutzer-Abstimmungsfunktion implementieren und die Abstimmungsergebnisse zählen und anzeigen. Natürlich erfordern tatsächliche Abstimmungssysteme möglicherweise mehr Funktionen und Sicherheitsmaßnahmen, um bestimmte Anforderungen zu erfüllen, aber die in diesem Artikel bereitgestellten Beispiele können als Referenz für den Einstieg in die Entwicklung eines grundlegenden Abstimmungssystems verwendet werden.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des von PHP entwickelten Online-Abstimmungssystems. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn