ホームページ >バックエンド開発 >PHPチュートリアル >カスタマイズ可能な PHP オンライン投票プラットフォームを構築する

カスタマイズ可能な PHP オンライン投票プラットフォームを構築する

王林
王林オリジナル
2023-08-08 09:25:01852ブラウズ

カスタマイズ可能な PHP オンライン投票プラットフォームを構築する

カスタマイズ可能な PHP オンライン投票プラットフォームを構築する

インターネットの普及とテクノロジーの継続的な発展により、オンライン投票は世論や意見を収集する一般的な方法となりました。決断。カスタマイズ可能な PHP オンライン投票プラットフォームを構築すると、柔軟で効率的かつ安全な投票環境がユーザーに提供されます。この記事では、PHP を使用して簡単なオンライン投票プラットフォームを作成する方法を紹介し、コード例を示します。

まず、投票関連データを保存するデータベースを作成する必要があります。バックエンドデータベースとしてMySQLを使用できます。 「voting」という名前のデータベースを作成し、その中に「polll」と「votes」という 2 つのテーブルを作成します。

CREATE DATABASE voting;

CREATE TABLE polls (
    id INT(11) NOT NULL AUTO_INCREMENT,
    question VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE votes (
    id INT(11) NOT NULL AUTO_INCREMENT,
    poll_id INT(11) NOT NULL,
    option_id INT(11) NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (poll_id) REFERENCES polls(id)
);

次に、投票の質問と選択肢を表示し、ユーザーの投票を記録する投票ページを作成する必要があります。 「index.php」というファイルを作成し、次のコードを追加します。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "voting";

// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 获取投票问题和选项
$sql = "SELECT id, question FROM polls";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // 输出每个投票问题和选项
    while($row = $result->fetch_assoc()) {
        echo "<h2>".$row['question']."</h2>";

        $optionsSql = "SELECT id, option_name FROM options WHERE poll_id=".$row['id'];
        $optionsResult = $conn->query($optionsSql);

        if ($optionsResult->num_rows > 0) {
            // 输出每个选项的投票按钮
            while($optionRow = $optionsResult->fetch_assoc()) {
                echo '<input type="radio" name="poll'.$row['id'].'" value="'.$optionRow['id'].'"> '.$optionRow['option_name'].'<br>';
            }
        }
    }
    echo '<input type="submit" value="提交投票">';
} else {
    echo "暂无投票问题";
}

$conn->close();
?>

上記のコードは、データベースから投票の質問と関連オプションを取得し、ページに表示します。各オプションは、ユーザーが選択するためのラジオ ボタンを生成します。ユーザーはオプションを選択した後、「投票を送信」ボタンをクリックして投票を送信できます。

次に、ユーザーの投票を処理し、データベースにログインする必要があります。 「index.php」ファイルを変更し、次のコードを追加します。

<?php
// ...

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $pollId = $_POST['pollId'];
    $optionId = $_POST['optionId'];

    $sql = "INSERT INTO votes (poll_id, option_id) VALUES ('$pollId', '$optionId')";

    if ($conn->query($sql) === TRUE) {
        echo "投票成功";
    } else {
        echo "投票失败";
    }
}

$conn->close();
?>

上記のコードは、「投票を送信」ボタンの POST リクエストを処理し、投票レコードを「投票」テーブルに挿入します。

投票機能に加えて、投票プラットフォームのカスタマイズを改善するために他の機能を追加することもできます。たとえば、バックエンド管理ページを追加すると、投票の質問とオプションを動的に作成し、投票結果を表示できます。 「admin.php」というファイルを作成し、次のコードを追加します。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "voting";

// 创建数据库连接
$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['question']."</h2>";

        $optionsSql = "SELECT * FROM options WHERE poll_id=".$row['id'];
        $optionsResult = $conn->query($optionsSql);

        if ($optionsResult->num_rows > 0) {
            // 输出每个选项和对应的投票数
            while($optionRow = $optionsResult->fetch_assoc()) {
                $voteCountSql = "SELECT COUNT(*) AS count FROM votes WHERE poll_id=".$row['id']." AND option_id=".$optionRow['id'];
                $voteCountResult = $conn->query($voteCountSql);
                $voteCount = $voteCountResult->fetch_assoc()['count'];

                echo $optionRow['option_name'].": ".$voteCount."<br>";
            }
        }
    }
} else {
    echo "暂无投票问题";
}

$conn->close();
?>

上記のコードは、データベースからすべての投票質問を取得し、各オプションとそれに対応する投票数を表示します。

上記は、シンプルなカスタマイズ可能な PHP オンライン投票プラットフォームの実装です。 PHP で書かれた簡単なコード例を使用することで、投票の表示、記録、統計などの機能を実装できます。ユーザーログインや投票期限、投票結果のグラフ表示などの機能を追加するなど、さまざまなシーンでの投票ニーズに対応するなど、お客様のニーズに合わせてさらにカスタマイズ・拡張することができます。

以上がカスタマイズ可能な PHP オンライン投票プラットフォームを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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