>  기사  >  백엔드 개발  >  PHP를 사용하여 지식 Q&A 웹사이트에서 시간에 맞춰 게시하고 질문의 상위 기능을 개발합니다.

PHP를 사용하여 지식 Q&A 웹사이트에서 시간에 맞춰 게시하고 질문의 상위 기능을 개발합니다.

PHPz
PHPz원래의
2023-07-02 14:39:25646검색

PHP를 사용하여 지식 Q&A 사이트의 예약 질문 게시 및 상위 기능 개발

지식 Q&A 사이트에서 질문 게시 및 정렬은 매우 중요한 기능입니다. 예약 게시 및 주요 기능은 관리자가 웹 사이트 콘텐츠를 더 잘 관리하고 더 나은 사용자 경험을 제공하는 데 도움이 될 수 있습니다. 이 기사에서는 PHP를 사용하여 지식 Q&A 웹사이트에서 예약된 질문 게시 및 고정 기능을 개발하는 방법을 소개하고 해당 코드 예제를 제공합니다.

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

위의 단계를 통해 지식질문답변 사이트에 정기적으로 질문을 게시하고 고정하는 기능을 구현할 수 있습니다. 이러한 기능은 웹 사이트의 콘텐츠 관리 효율성을 향상시키고 사용자가 문제 토론에 더 잘 접근하고 참여할 수 있도록 해줍니다.

위 내용은 PHP를 사용하여 지식 Q&A 웹사이트에서 시간에 맞춰 게시하고 질문의 상위 기능을 개발합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.