Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan PHP untuk membangunkan penyiaran soalan berjadual dan fungsi teratas dalam laman web Soal Jawab pengetahuan.

Gunakan PHP untuk membangunkan penyiaran soalan berjadual dan fungsi teratas dalam laman web Soal Jawab pengetahuan.

PHPz
PHPzasal
2023-07-02 14:39:25645semak imbas

Gunakan PHP untuk membangunkan penerbitan soalan berjadual dan fungsi teratas dalam laman web Soal Jawab pengetahuan

Dalam laman web Soal Jawab pengetahuan, penerbitan dan pengisihan soalan adalah fungsi yang sangat penting. Penerbitan berjadual dan fungsi teratas boleh membantu pentadbir mengurus kandungan tapak web dengan lebih baik dan memberikan pengalaman pengguna yang lebih baik. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi penyiaran dan penyematan soalan berjadual dalam tapak web Soal Jawab pengetahuan dan menyediakan contoh kod yang sepadan.

  1. Fungsi penerbitan berjadual

Fungsi penerbitan berjadual membolehkan pentadbir menetapkan masa penerbitan soalan terlebih dahulu dan menerbitkan soalan secara automatik selepas masa yang ditetapkan tercapai. Ini akan memudahkan pentadbir menyediakan soalan lebih awal dan mengatur masa keluaran kandungan dengan munasabah.

Mula-mula, cipta medan dalam pangkalan data untuk menyimpan masa penyiaran soalan dan tambah indeks untuk meningkatkan kecekapan pertanyaan. Anda boleh menggunakan jenis DATETIME untuk menyimpan maklumat tarikh dan masa.

ALTER TABLE `questions` ADD `publish_time` DATETIME AFTER `content`;
ALTER TABLE `questions` ADD INDEX (`publish_time`);

Kemudian, dalam kod pemprosesan isu, tambah logik untuk menentukan masa keluaran. Apabila sebelum masa penerbitan, simpan isu itu ke pangkalan data dan bukannya menerbitkannya serta-merta.

<?php
$publish_time = $_POST['publish_time'];
$current_time = date("Y-m-d H:i:s");

if ($publish_time > $current_time) {
    // 保存问题到数据库,而不发布
    $sql = "INSERT INTO questions (title, content, publish_time) VALUES ('$title', '$content', '$publish_time')";
} else {
    // 直接发布问题
    $sql = "INSERT INTO questions (title, content) VALUES ('$title', '$content')";
}

// 执行 SQL 语句
$result = mysqli_query($conn, $sql);

if ($result) {
    echo "问题发布成功!";
} else {
    echo "问题发布失败!";
}
?>
  1. Fungsi pin

Fungsi pin boleh meletakkan soalan khusus di hadapan senarai soalan, memudahkan pengguna mencarinya. Biasanya, soalan yang disematkan muncul sebelum soalan lain dan kekal disematkan untuk satu tempoh masa.

Tambah medan is_top,用来存储问题是否被置顶的状态。将其数据类型设置为布尔类型 BIT pada jadual soalan dalam pangkalan data, lalainya ialah 0.

Dalam kod yang dipaparkan dalam senarai soalan, tambah logik untuk menentukan sama ada soalan itu disematkan ke bahagian atas. Bergantung pada status yang disematkan, soalan yang disematkan dipaparkan dahulu dan kemudian soalan lain.

<?php
$sql = "SELECT * FROM questions ORDER BY is_top DESC, publish_time DESC";
$result = mysqli_query($conn, $sql);

while ($row = mysqli_fetch_assoc($result)) {
    // 显示问题信息
    // ...
}
?>

Tambahkan antara muka untuk menetapkan status soalan yang disematkan. Melalui panggilan antara muka, pentadbir boleh menyemat soalan dengan mudah ke bahagian atas atau menyahsematnya.

<?php
$question_id = $_POST['question_id'];
$is_top = $_POST['is_top'];

$sql = "UPDATE questions SET is_top = $is_top WHERE id = $question_id";
$result = mysqli_query($conn, $sql);

if ($result) {
    echo "问题置顶状态更新成功!";
} else {
    echo "问题置顶状态更新失败!";
}
?>

Melalui langkah di atas, kita boleh melaksanakan fungsi kerap menerbitkan dan menyemat soalan dalam laman web soal jawab ilmu. Ciri-ciri ini boleh meningkatkan kecekapan pengurusan kandungan di tapak web dan membolehkan pengguna mengakses dan mengambil bahagian dalam perbincangan isu dengan lebih baik.

Atas ialah kandungan terperinci Gunakan PHP untuk membangunkan penyiaran soalan berjadual dan fungsi teratas dalam laman web Soal Jawab pengetahuan.. 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