ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して、ナレッジ Q&A Web サイトの質問の時間指定投稿とトップ機能を開発します。

PHP を使用して、ナレッジ Q&A Web サイトの質問の時間指定投稿とトップ機能を開発します。

PHPz
PHPzオリジナル
2023-07-02 14:39:25737ブラウズ

PHP を使用して、ナレッジ Q&A Web サイトのスケジュールされた質問の公開とトップ機能を開発する

ナレッジ Q&A Web サイトでは、質問の公開と並べ替えは非常に重要な機能です。スケジュールされた公開とトップ機能は、管理者が Web サイトのコンテンツをより適切に管理し、より良いユーザー エクスペリエンスを提供するのに役立ちます。この記事では、PHP を使用してナレッジ Q&A Web サイトでスケジュールされた質問の投稿機能と固定機能を開発する方法を紹介し、対応するコード例を示します。

  1. スケジュール公開機能

スケジュール公開機能とは、管理者が事前に質問の公開時間を設定し、指定した時間になると自動的に質問を公開する機能です。これにより、管理者は事前に質問を準備し、コンテンツのリリース時間を合理的に調整することが容易になります。

まず、質問のリリース時刻を保存するフィールドをデータベースに作成し、クエリ効率を向上させるためにインデックスを追加します。 DATETIME 型を使用して、日付と時刻の情報を保存できます。

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

次に、課題リリースの処理コードに、リリース時間を決定するロジックを追加します。公開時間前である場合は、すぐに公開するのではなく、問題をデータベースに保存します。

<?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. トップ機能

ピン機能を使用すると、特定の質問を質問リストの先頭に配置でき、ユーザーが見つけやすくなります。通常、固定された質問は他の質問よりも前に表示され、一定期間固定されたままになります。

フィールド is_top をデータベースの質問テーブルに追加して、質問がトップかどうかのステータスを保存します。データ型をブール型 BIT に設定します。デフォルトは 0 です。

質問リストに表示されるコードに、質問が上部に固定されているかどうかを判断するロジックを追加します。ピン留めのステータスに応じて、ピン留めされた質問が最初に表示され、次に他の質問が表示されます。

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

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

質問の最上位ステータスを設定するインターフェイスを追加します。インターフェース呼び出しを通じて、管理者は質問を上部に固定したり、固定を解除したりすることが簡単にできます。

<?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 "问题置顶状态更新失败!";
}
?>

上記の手順により、知識質問と回答の Web サイトに質問を定期的に公開および固定する機能を実装できます。これらの機能により、Web サイト上のコンテンツ管理の効率が向上し、ユーザーが問題にアクセスして議論に参加できるようになります。

以上がPHP を使用して、ナレッジ Q&A Web サイトの質問の時間指定投稿とトップ機能を開発します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。