Heim  >  Artikel  >  Backend-Entwicklung  >  Erstellen Sie eine anpassbare PHP-Online-Abstimmungsplattform

Erstellen Sie eine anpassbare PHP-Online-Abstimmungsplattform

王林
王林Original
2023-08-08 09:25:01755Durchsuche

Erstellen Sie eine anpassbare PHP-Online-Abstimmungsplattform

Erstellen Sie eine anpassbare PHP-Online-Abstimmungsplattform

Mit der Popularität des Internets und der kontinuierlichen Weiterentwicklung der Technologie ist Online-Abstimmung zu einer gängigen Methode geworden, um öffentliche Meinungen und Entscheidungen zu sammeln. Der Aufbau einer anpassbaren PHP-Online-Abstimmungsplattform bietet Benutzern eine flexible, effiziente und sichere Abstimmungsumgebung. In diesem Artikel wird erläutert, wie Sie mit PHP eine einfache Online-Abstimmungsplattform schreiben und Codebeispiele bereitstellen.

Zuerst müssen wir eine Datenbank erstellen, um wahlbezogene Daten zu speichern. Wir können MySQL als Backend-Datenbank verwenden. Erstellen Sie eine Datenbank mit dem Namen „voting“ und erstellen Sie darin zwei Tabellen, „polls“ und „votes“.

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

Als nächstes müssen wir eine Abstimmungsseite erstellen, die die Abstimmungsfragen und -optionen anzeigt und die Stimmen des Benutzers aufzeichnet. Erstellen Sie eine Datei mit dem Namen „index.php“ und fügen Sie den folgenden Code hinzu:

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

Der obige Code ruft die Abstimmungsfragen und zugehörigen Optionen aus der Datenbank ab und zeigt sie auf der Seite an. Jede Option generiert ein Optionsfeld, das der Benutzer auswählen kann. Nachdem der Benutzer eine Option ausgewählt hat, kann er auf die Schaltfläche „Abstimmung abgeben“ klicken, um seine Stimme abzugeben.

Als nächstes müssen wir die Stimmen des Benutzers verarbeiten und sie in der Datenbank protokollieren. Ändern Sie die Datei „index.php“ und fügen Sie den folgenden Code hinzu:

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

Der obige Code verarbeitet die POST-Anfrage der Schaltfläche „Abstimmung senden“ und fügt den Abstimmungsdatensatz in die Tabelle „Abstimmungen“ ein.

Neben der Abstimmungsfunktion können wir auch weitere Funktionen hinzufügen, um die Anpassung der Abstimmungsplattform zu verbessern. Durch das Hinzufügen einer Backend-Verwaltungsseite können Sie beispielsweise Abstimmungsfragen und -optionen dynamisch erstellen und Abstimmungsergebnisse anzeigen. Wir können eine Datei namens „admin.php“ erstellen und darin den folgenden Code hinzufügen:

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

Der obige Code ruft alle Abstimmungsfragen aus der Datenbank ab und zeigt jede Option und die entsprechende Anzahl an Stimmen an.

Das Obige ist die Implementierung einer einfachen anpassbaren PHP-Online-Abstimmungsplattform. Durch die Verwendung einfacher, in PHP geschriebener Codebeispiele können wir Funktionen wie Abstimmungsanzeige, Aufzeichnung und Statistiken implementieren. Sie können diese Plattform entsprechend Ihren eigenen Bedürfnissen weiter anpassen und erweitern, indem Sie beispielsweise Funktionen wie Benutzeranmeldung, Abstimmungsfrist und Diagrammanzeige der Abstimmungsergebnisse hinzufügen, um den Abstimmungsanforderungen in verschiedenen Szenarien gerecht zu werden.

Das obige ist der detaillierte Inhalt vonErstellen Sie eine anpassbare PHP-Online-Abstimmungsplattform. 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