Rumah > pembangunan bahagian belakang > tutorial php > Cara menggunakan PHP untuk melaksanakan fungsi pengundian dan pengundian dalam talian

Cara menggunakan PHP untuk melaksanakan fungsi pengundian dan pengundian dalam talian

PHPz
Lepaskan: 2023-09-05 10:58:01
asal
899 orang telah melayarinya

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

Cara menggunakan PHP untuk melaksanakan fungsi pengundian dan pengundian dalam talian

Dalam masyarakat moden, tinjauan pendapat dan pengundian dalam talian telah menjadi cara penting untuk mendapatkan pendapat umum dan cara penting untuk membuat keputusan. Sebagai bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web, PHP membekalkan kita dengan pelbagai alatan dan fungsi untuk mencapai fungsi tersebut. Artikel ini akan memperkenalkan anda kepada cara menggunakan PHP untuk melaksanakan fungsi pengundian dan pengundian dalam talian.

  1. Reka Bentuk Pangkalan Data

Pertama sekali, kita perlu mereka bentuk pangkalan data untuk menyimpan data berkaitan undian dan tinjauan. Kita boleh membuat jadual yang dipanggil "pungutan suara" untuk menyimpan maklumat pengundian, termasuk tajuk tinjauan pendapat, pilihan dan bilangan undian bagi setiap pilihan. Kod contoh adalah seperti berikut:

CREATE JADUAL tinjauan pendapat (

id INT(11) AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
options TEXT NOT NULL,
votes TEXT DEFAULT '{"option1":0, "option2":0}'
Salin selepas log masuk

);

  1. Tunjukkan borang tinjauan dan undian🎜#🎜 ##🎜 🎜#
  2. Seterusnya, kami boleh membuat halaman PHP untuk memaparkan borang tinjauan dan undian yang tersedia pada masa ini. Kita boleh menggunakan pernyataan SELECT untuk mendapatkan senarai tinjauan daripada pangkalan data dan memaparkannya pada halaman. Kod sampel adalah seperti berikut:

// Sambung ke pangkalan data

$servername = "localhost";
$username = "username" ;
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {

die("连接失败: " . $conn->connect_error);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

// Dapatkan senarai tinjauan

$sql = "PILIH * DARI tinjauan pendapat" ;

$result = $conn->query($sql);

// Paparkan senarai tinjauan dan borang undian

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>";
}
Salin selepas log masuk

} lain {

echo "暂无可用的调查。";
Salin selepas log masuk
Salin selepas log masuk

}

$conn->close();

?>###🎜🎜 🎜##🎜🎜 #Mengendalikan permintaan pengundian



Apabila pengguna menyerahkan borang undian, kami perlu mencipta skrip PHP untuk mengendalikan permintaan pengundian dan mengemas kini kaunter undian dalam pangkalan data. Kod sampel adalah seperti berikut:

    // Dapatkan pilihan undian dan ID tinjauan$option = $_POST["option"];
$poll_id = $_POST["poll_id"];

//Sambung ke pangkalan data

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

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

die("连接失败: " . $conn->connect_error);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

// Dapatkan maklumat pengundian semasa

$sql = "PILIH * DARI tinjauan pendapat DI MANA 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;
}
Salin selepas log masuk

} else {# 🎜🎜#

echo "调查不存在。";
Salin selepas log masuk

}


$conn->close();
?>

#🎜#Sho🎜 keputusan voting 🎜##🎜 🎜#

Akhir sekali, kita perlu mencipta halaman PHP untuk memaparkan keputusan pengundian. Kita boleh menggunakan pernyataan SELECT untuk mendapatkan maklumat pengundian daripada pangkalan data dan memaparkannya pada halaman. Kod sampel adalah seperti berikut:

// Sambung ke pangkalan data

$servername = "localhost";
$username = "username" ;

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

die("连接失败: " . $conn->connect_error);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}


// Dapatkan maklumat mengundi
$sql = "PILIH * DARI tinjauan pendapat" ;
$result = $conn->query($sql);

// Paparkan keputusan pengundian

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>";
    }
}
Salin selepas log masuk
# 🎜🎜#} lain {

echo "暂无可用的调查。";
Salin selepas log masuk
Salin selepas log masuk

}$conn->close();

?>

?>#🎜🎜🎜🎜🎜🎜 langkah di atas, kami akan Mengundi dalam talian dan fungsi pengundian boleh dilaksanakan menggunakan PHP. Anda boleh mengembangkan dan menyesuaikannya mengikut keperluan anda, seperti menambah pengesahan, kawalan kebenaran dan fungsi lain untuk memenuhi keperluan projek tertentu.


Saya harap artikel ini akan membantu anda!

Atas ialah kandungan terperinci Cara menggunakan PHP untuk melaksanakan fungsi pengundian dan pengundian dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan