Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan PHP untuk melaksanakan pengundian dalam talian dan paparan keputusan undian dengan fungsi sembang masa nyata

Menggunakan PHP untuk melaksanakan pengundian dalam talian dan paparan keputusan undian dengan fungsi sembang masa nyata

王林
王林asal
2023-08-14 09:13:241236semak imbas

Menggunakan PHP untuk melaksanakan pengundian dalam talian dan paparan keputusan undian dengan fungsi sembang masa nyata

Gunakan PHP untuk melaksanakan pengundian dalam talian dan paparan keputusan undian dengan fungsi sembang masa nyata

Dengan perkembangan Internet, semakin banyak laman web dan aplikasi telah mula menyediakan fungsi sembang masa nyata. Pengundian dalam talian juga merupakan ciri biasa dan boleh digunakan dalam pelbagai acara, pilihan raya dan proses membuat keputusan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan pengundian dalam talian dengan fungsi sembang masa nyata dan memaparkan hasil undian dalam masa nyata.

  1. Tetapan pangkalan data

Pertama, kita perlu mencipta pangkalan data untuk menyimpan data berkaitan pengundian. MySQL atau pangkalan data hubungan lain boleh digunakan. Katakan kita mencipta pangkalan data bernama "polls" dan mencipta tiga jadual di dalamnya: users, polls dan undian. userspollsvotes

  • users表包含用户的信息,比如用户名、密码等。
  • polls表包含投票的信息,比如投票的标题、选项等。
  • votes表包含投票结果的信息,比如用户ID、投票ID、选项等。

下面是数据库表的创建语句:

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `polls` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `votes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `poll_id` int(11) NOT NULL,
  `option` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);
  1. 注册和登录功能

在实现在线投票功能之前,首先需要实现用户注册和登录功能。这部分代码比较简单,可以使用PHP的mysqli扩展与数据库进行交互。

下面是一个简单的注册和登录示例:

// 注册
$username = $_POST['username'];
$password = $_POST['password'];

$query = $mysqli->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$query->bind_param('ss', $username, $password);
$query->execute();
$query->close();

// 登录
$username = $_POST['username'];
$password = $_POST['password'];

$query = $mysqli->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$query->bind_param('ss', $username, $password);
$query->execute();
$result = $query->get_result();
$user = $result->fetch_assoc();
$query->close();

if ($user) {
  // 登录成功,可以进行投票操作
} else {
  // 登录失败,用户名或密码错误
}
  1. 创建投票和投票页面

接下来,我们需要创建投票和投票展示的页面。这里使用HTML和CSS来创建投票页面,使用PHP来处理投票数据。

下面是一个简单的投票页面示例:

<html>
<head>
  <title>在线投票</title>
  <style>
    .vote-option {
      margin-bottom: 10px;
    }
  </style>
</head>
<body>
  <h1>在线投票</h1>

  <form action="vote.php" method="post">
    <h2>投票标题</h2>
    
    <div class="vote-option">
      <input type="radio" name="option" value="option1"> 选项1
    </div>
    <div class="vote-option">
      <input type="radio" name="option" value="option2"> 选项2
    </div>
    
    <input type="submit" value="投票">
  </form>
</body>
</html>

这里的投票页面包含一个投票标题和多个投票选项。当用户点击"投票"按钮时,表单数据将被提交到vote.php处理投票。

  1. 投票处理和结果展示

vote.php中,我们需要处理投票数据并将结果存储到数据库中。

下面是一个简单的投票处理和结果展示的代码示例:

// 投票处理
$userID = $_SESSION['userID']; // 根据用户的登录状态获取用户ID
$pollID = $_POST['pollID'];

$option = $_POST['option'];

$query = $mysqli->prepare("INSERT INTO votes (user_id, poll_id, option) VALUES (?, ?, ?)");
$query->bind_param('iis', $userID, $pollID, $option);
$query->execute();
$query->close();

// 投票结果展示
$query = $mysqli->prepare("SELECT option, COUNT(*) as count FROM votes WHERE poll_id = ? GROUP BY option");
$query->bind_param('i', $pollID);
$query->execute();
$result = $query->get_result();
$query->close();

while ($row = $result->fetch_assoc()) {
  echo $row['option'] . ': ' . $row['count'] . ' 票<br>';
}

在投票处理部分,我们使用用户ID、投票ID和选项创建一个新的投票结果,并存储到votes

    Jadual pengguna mengandungi maklumat pengguna, seperti nama pengguna, kata laluan, dsb.

    Jadual pungutan suara mengandungi maklumat pengundian, seperti tajuk undian, pilihan, dsb.

    Jadual undi mengandungi maklumat keputusan undian, seperti ID pengguna, ID undian, pilihan, dsb. 🎜
🎜Berikut ialah pernyataan penciptaan jadual pangkalan data: 🎜rrreee
    🎜Fungsi pendaftaran dan log masuk🎜🎜🎜Sebelum melaksanakan fungsi pengundian dalam talian, anda perlu melaksanakan pendaftaran pengguna terlebih dahulu dan fungsi log masuk. Bahagian kod ini agak mudah dan anda boleh menggunakan sambungan mysqli PHP untuk berinteraksi dengan pangkalan data. 🎜🎜Berikut ialah contoh pendaftaran dan log masuk mudah: 🎜rrreee
      🎜Buat halaman pengundian dan pengundian🎜🎜🎜Seterusnya, kita perlu membuat halaman paparan pengundian dan pengundian. Di sini, HTML dan CSS digunakan untuk membuat halaman pengundian, dan PHP digunakan untuk memproses data pengundian. 🎜🎜Berikut ialah contoh halaman pengundian mudah: 🎜rrreee🎜Halaman pengundian di sini mengandungi tajuk undian dan berbilang pilihan pengundian. Apabila pengguna mengklik butang "Undi", data borang akan diserahkan kepada vote.php untuk memproses undian. 🎜
        🎜Pemprosesan undi dan paparan keputusan🎜🎜🎜Dalam vote.php, kita perlu memproses data pengundian dan menyimpan keputusan ke dalam pangkalan data. 🎜🎜Berikut ialah contoh kod mudah untuk pemprosesan undian dan paparan keputusan: 🎜rrreee🎜Di bahagian pemprosesan undian, kami menggunakan ID pengguna, ID pengundian dan pilihan untuk membuat keputusan pengundian baharu dan menyimpannya dalam undiJadual. 🎜🎜Di bahagian paparan keputusan undian, kami menanyakan pilihan dan undian yang sepadan dalam pangkalan data berdasarkan ID undian dan memaparkannya. 🎜🎜Di atas ialah contoh kod menggunakan PHP untuk melaksanakan pengundian dalam talian dan paparan keputusan undian dengan fungsi sembang masa nyata. Dengan kod ini, kami boleh membuat tapak web atau aplikasi yang menyokong fungsi sembang langsung dan pengundian dalam talian. 🎜

Atas ialah kandungan terperinci Menggunakan PHP untuk melaksanakan pengundian dalam talian dan paparan keputusan undian dengan fungsi sembang masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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