如何使用 PHP 實現線上投票和民意調查功能

PHPz
發布: 2023-09-05 10:58:01
原創
867 人瀏覽過

如何使用 PHP 实现在线投票和民意调查功能

如何使用 PHP 實現線上投票和民意調查功能

在現代社會中,民意調查和線上投票成為了獲取公眾觀點和決策的重要手段。而PHP作為一種廣泛應用於Web開發的程式語言,為我們提供了豐富的工具和功能來實現這樣的功能。本文將向您介紹如何使用PHP來實現線上投票和民意調查功能。

  1. 資料庫設計

首先,我們需要設計一個資料庫來儲存投票和調查相關的資料。我們可以建立一個名為"polls"的表格來儲存投票訊息,包括投票標題、選項和每個選項的得票數。範例程式碼如下:

CREATE TABLE polls (

id INT(11) AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
options TEXT NOT NULL,
votes TEXT DEFAULT '{"option1":0, "option2":0}'
登入後複製

);

  1. 顯示調查和投票表單

接下來,我們可以建立一個PHP頁面來顯示目前可用的調查和投票表單。我們可以使用SELECT語句來從資料庫中取得調查列表,並將其顯示在頁面上。範例程式碼如下:

// 連線資料庫
$servername = "localhost";
$username = "username";
$password = "password" ;
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {

die("连接失败: " . $conn->connect_error);
登入後複製
登入後複製
登入後複製

}

// 取得調查清單
$sql = "SELECT * FROM polls";
$result = $conn->query($sql);

// 顯示調查清單與投票表單
if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {
    echo "<h2>".$row["title"]."</h2>";
    $options = json_decode($row["options"]);
    echo "<form action="vote.php" method="POST">";
    foreach ($options as $option) {
        echo "<input type="radio" name="option" value="$option">$option<br>";
    }
    echo "<input type="hidden" name="poll_id" value="".$row["id"]."">";
    echo "<input type="submit" value="投票">";
    echo "</form>";
}
登入後複製

} else {

echo "暂无可用的调查。";
登入後複製
登入後複製

}
$ conn->close();
?>

  1. 處理投票請求

當使用者提交投票表單時,我們需要建立一個PHP腳本來處理投票請求,並更新資料庫中的投票計數器。範例程式碼如下:

// 取得投票選項與調查ID
$option = $_POST["option"];
$poll_id = $_POST["poll_id "];

// 連線資料庫
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = " database";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {

die("连接失败: " . $conn->connect_error);
登入後複製
登入後複製
登入後複製

}

// 取得目前投票資訊
$sql = "SELECT * FROM polls WHERE id = $poll_id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {

$row = $result->fetch_assoc();
$votes = json_decode($row["votes"], true);

// 更新投票计数器
$votes[$option]++;
$votes_json = json_encode($votes);

// 更新数据库中的投票信息
$sql = "UPDATE polls SET votes = '$votes_json' WHERE id = $poll_id";
if ($conn->query($sql) === TRUE) {
    echo "投票成功!";
} else {
    echo "投票失败: " . $conn->error;
}
登入後複製

} else {

echo "调查不存在。";
登入後複製

}

$conn->close();
?> ;

  1. 顯示投票結果

最後,我們需要建立一個PHP頁面來顯示投票結果。我們可以使用SELECT語句來從資料庫中獲取投票信息,並將其顯示在頁面上。範例程式碼如下:

// 連線資料庫
$servername = "localhost";
$username = "username";
$password = "password" ;
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {

die("连接失败: " . $conn->connect_error);
登入後複製
登入後複製
登入後複製

}

// 取得投票資訊
$sql = "SELECT * FROM polls";
$result = $conn->query($sql);

// 顯示投票結果
if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {
    echo "<h2>".$row["title"]."</h2>";
    $votes = json_decode($row["votes"], true);
    $total_votes = array_sum($votes);
    foreach ($votes as $option => $vote_count) {
        $percentage = ($vote_count / $total_votes) * 100;
        echo "<p>$option : $vote_count 票 ($percentage%)</p>";
    }
}
登入後複製

} else {

echo "暂无可用的调查。";
登入後複製
登入後複製

}
$conn-> ;close();
?>

透過上述步驟,我們就可以使用PHP來實現線上投票和民意調查功能。您可以根據自己的需求進行擴展和定制,例如添加驗證、權限控制等功能,以滿足特定項目的要求。

希望這篇文章對您有幫助!

以上是如何使用 PHP 實現線上投票和民意調查功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板