Gunakan PHP untuk membangunkan kedudukan mata pengguna dan fungsi pemeringkatan dalam laman web soalan dan jawapan pengetahuan.

WBOY
Lepaskan: 2023-07-01 20:26:01
asal
1396 orang telah melayarinya

Gunakan PHP untuk membangunkan fungsi pemeringkatan dan pemeringkatan mata pengguna dalam laman web soal jawab pengetahuan

Dengan perkembangan Internet, laman web soal jawab pengetahuan telah menjadi salah satu cara penting untuk orang ramai memperoleh pengetahuan dan menyelesaikan masalah. Dalam jenis laman web ini, kedudukan mata pengguna dan fungsi penarafan adalah sangat penting. Ia boleh menggalakkan pengguna untuk mengambil bahagian secara aktif dalam aktiviti Soal Jawab dan meningkatkan aktiviti laman web. Dalam artikel ini, kami akan menggunakan PHP untuk membangunkan kedudukan mata pengguna dan fungsi kedudukan dalam tapak web soal jawab pengetahuan, dan menyediakan contoh kod yang sepadan.

Kedudukan mata pengguna adalah berdasarkan mata yang diperoleh oleh pengguna dalam aktiviti Soal Jawab Pengguna dengan mata yang lebih tinggi mendapat kedudukan lebih tinggi. Fungsi ranking boleh memaparkan ranking mata pengguna supaya pengguna dapat memahami status mereka dalam laman web.

1. Reka bentuk pangkalan data

Pertama, kita perlu mereka bentuk jadual pengguna dan jadual mata dalam pangkalan data. Jadual pengguna menyimpan maklumat asas pengguna, dan jadual mata menyimpan rekod mata yang diperoleh pengguna dalam aktiviti soal jawab.

Struktur jadual pengguna adalah seperti berikut:

CREATE TABLE `users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `password` varchar(255) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Salin selepas log masuk

Struktur jadual mata adalah seperti berikut:

CREATE TABLE `scores` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(11) unsigned NOT NULL,
  `score` int(11) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `scores_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Salin selepas log masuk

2. Pengiraan mata dan kemas kini kedudukan

Selepas pengguna memperoleh mata dalam aktiviti Soal Jawab, kita perlu kira mata dan kemas kini kedudukan pengguna.

Pertama, kita boleh mencipta fungsi untuk mengira mata pengguna. Berikut ialah contoh fungsi:

function calculateScore($user_id, $score)
{
    // 将用户积分插入积分表
    $insertQuery = "INSERT INTO scores (user_id, score) VALUES ($user_id, $score)";
    // 执行插入操作...

    // 查询用户总积分
    $query = "SELECT SUM(score) as total_score FROM scores WHERE user_id = $user_id";
    // 执行查询操作...

    // 更新用户总积分和排名
    $updateQuery = "UPDATE users SET total_score = $total_score WHERE id = $user_id";
    // 执行更新操作...

    // 更新用户排名
    $updateRankQuery = "SET @rank := 0;";
    $updateRankQuery .= "
        UPDATE users SET rank = (@rank := @rank + 1) ORDER BY total_score DESC;
    ";
    // 执行更新操作...
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula memasukkan mata pengguna ke dalam jadual mata. Kami kemudiannya menanyakan jumlah mata pengguna dan mengemas kini jumlah mata dan kedudukan pengguna. Akhir sekali, kami menggunakan pembolehubah @rank untuk menandakan kedudukan pengguna dan kemudian mengemas kini kedudukan untuk semua pengguna.

3. Paparan Kedudukan

Untuk memaparkan kedudukan pengguna, kita boleh menulis fungsi untuk menanyakan senarai kedudukan pengguna. Berikut ialah contoh fungsi:

function getRankings()
{
    $query = "SELECT name, total_score, rank FROM users ORDER BY rank";
    // 执行查询操作...
    // 输出排行列表...
}
Salin selepas log masuk

Dalam kod di atas, kami menanyakan jadual pengguna dan mengembalikan nama pengguna, jumlah mata dan kedudukan mengikut susunan kedudukan.

4. Contoh panggilan

Berikut adalah contoh penggunaan fungsi di atas untuk merealisasikan kedudukan mata pengguna dan fungsi ranking:

// 用户获得积分后调用计算和更新积分函数
calculateScore($user_id, $score);

// 显示用户的排行
getRankings();
Salin selepas log masuk

Dengan memanggil fungsi contoh, kita boleh mengira mata pengguna, mengemas kini kedudukan pengguna, dan memaparkan senarai Kedudukan pengguna.

Ringkasan:

Artikel ini memperkenalkan cara menggunakan PHP untuk membangunkan kedudukan mata pengguna dan fungsi kedudukan dalam tapak web soal jawab pengetahuan. Pertama, kami mereka bentuk struktur pangkalan data bagi jadual pengguna dan jadual mata. Kemudian, kami menulis fungsi yang sepadan untuk mengira mata, mengemas kini kedudukan dan memaparkan senarai kedudukan. Dengan memanggil fungsi ini, kami boleh melaksanakan fungsi kedudukan dan kedudukan mata pengguna. Saya harap artikel ini akan membantu anda apabila membangunkan sistem mata dalam laman web yang serupa.

Atas ialah kandungan terperinci Gunakan PHP untuk membangunkan kedudukan mata pengguna dan fungsi pemeringkatan dalam laman web soalan dan jawapan pengetahuan.. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!