>  기사  >  백엔드 개발  >  PHP는 지식 질의응답 웹사이트에서 사용자 활동 및 기여도 통계 기능을 구현합니다.

PHP는 지식 질의응답 웹사이트에서 사용자 활동 및 기여도 통계 기능을 구현합니다.

WBOY
WBOY원래의
2023-07-02 10:49:181555검색

PHP는 지식 질의응답 웹사이트에서 사용자 활동 및 기여도에 대한 통계 기능을 구현합니다.

지식 질의응답 웹사이트의 등장으로 이러한 플랫폼에서 다양한 지식을 얻고 공유하는 사람들이 점점 더 많아지고 있습니다. 사용자 활동을 늘리고 사용자가 더 많은 기여를 하도록 장려하기 위해 당사는 웹사이트에서 사용자의 활동 데이터를 계산하여 사용자의 활동과 기여도를 평가할 수 있습니다. 이 문서에서는 PHP를 사용하여 이 기능을 구현하는 방법을 설명합니다.

우선, 사용자 활동과 기여의 개념을 이해해야 합니다. 사용자 활동이란 일정 기간 동안 웹사이트에서 사용자가 질문 게시, 질문에 답변, 좋아요, 댓글 달기 및 기타 활동을 수행한 빈도와 수를 의미합니다. 기여란 질문에 대한 답변, 문제 해결, 고품질 질문 게시 등 사용자가 웹사이트에서 수행한 구체적인 기여를 의미합니다.

구현 시 사용자 활동은 질문 게시, 질문에 답변, 좋아요, 댓글 등 지난 달의 활동 빈도로 정의됩니다. 기여도는 사용자가 웹사이트에 게시하고 답변한 총 질문 수입니다.

먼저 사용자 ID, 사용자 이름 등 사용자의 기본 정보를 저장하는 사용자 테이블이 필요합니다. users라는 데이터베이스 테이블을 생성하고 그 안에 해당 필드를 생성할 수 있습니다.

CREATE TABLE users (users (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,
email varchar(255) NOT NULL,
created_at datetime NOT NULL,
PRIMARY KEY (id)
);

接下来,我们需要有一个活动表来记录用户的活动信息,包括用户ID、活动类型和活动时间等。我们可以创建一个名为 activities 的数据库表,并在其中创建相应的字段。

CREATE TABLE activities (
id int(11) NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL,
activity_type varchar(255) NOT NULL,
created_at datetime NOT NULL,
PRIMARY KEY (id id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,

email varchar(255) NOT NULL,

created_at datetime NOT NULL,

PRIMARY KEY (id)

);

다음으로 활동 테이블은 사용자 ID, 활동 유형, 활동 시간 등을 포함한 사용자 활동 정보를 기록합니다. 활동이라는 데이터베이스 테이블을 만들고 그 안에 해당 필드를 만들 수 있습니다.

CREATE TABLE 활동 (

id int(11) NOT NULL AUTO_INCREMENT,

user_id int(11) NOT NULL,

Activity_type varchar(255) NOT NULL,

created_at datetime NOT NULL,

PRIMARY KEY (id)

);

사용자가 활동을 수행할 때, 그에 따라 레코드를 활성 테이블에 삽입해야 합니다. 예를 들어, 사용자가 질문을 게시하면 다음 코드를 실행할 수 있습니다.

$user_id = $_SESSION['user_id']; // 현재 사용자 ID 가져오기

$activity_type = 'question' // 활동 유형 질문 게시 중

$created_at = date('Y-m-d H:i:s'); //현재 시간


$sql = "INSERT INTO 활동(user_id,activity_type,created_at)

      VALUES ('$user_id', '$activity_type', '$created_at')";

$query = mysqli_query($conn, $sql); // 레코드 삽입 작업을 실행합니다.

마찬가지로 사용자가 질문에 답변하거나 좋아요 또는 댓글을 달 때 유사한 코드를 실행해야 합니다.

다음으로 사용자의 활동 및 기여도를 계산하는 함수를 작성해야 합니다. 지난 달 사용자의 활동 기록을 쿼리하는 get_user_activity()라는 함수를 만듭니다.


function get_user_activity($user_id) {

$past_month = date('Y-m-d', strtotime('-1 Month') ) // 한 달 전 날짜 가져오기


$sql = "SELECT count(*) as Activity_count

      FROM activities 
      WHERE user_id = $user_id 
      AND created_at >= '$past_month'";

$query = mysqli_query($conn, $sql);
$result = mysqli_fetch_assoc($query);

return $result[ 'activity_count'];

}

또한 get_user_contribution()이라는 함수를 만들어 사용자가 웹사이트에 게시하고 답변한 총 질문 수를 쿼리할 수도 있습니다.


function get_user_contribution($user_id) {
$sql = "공헌 개수로 SELECT 개수(*)

      FROM activities 
      WHERE user_id = $user_id 
      AND (activity_type = 'question' OR activity_type = 'answer')";

$query = mysqli_query($conn, $sql);
$result = mysqli_fetch_assoc($query);

return $ result['contribution_count'];

}

위 코드를 사용하면 페이지에서 이 두 함수를 호출하여 사용자의 활동과 기여도를 얻을 수 있습니다.

🎜$user_id = $_SESSION['user_id']; 현재 사용자 ID🎜🎜// 사용자 활동을 가져와서 페이지에 표시🎜$user_activity = get_user_activity($user_id);🎜echo "사용자 활동:" $user_activity;🎜🎜// 사용자 기여도를 가져와서 표시합니다. 페이지에서 🎜$user_contribution = get_user_contribution($user_id);🎜echo "사용자 기여도:" . $user_contribution;🎜🎜위 단계를 통해 지식 질문에서 사용자 활동 및 기여도 통계 기능을 구현하는 PHP를 완성했습니다. 필요에 따라 웹사이트 코드를 확장하고 실제 상황에 따라 시간 범위와 활동 유형을 조정할 수 있습니다. 요약하면, Q&A 웹사이트에서 사용자의 활동 데이터를 계산하여 사용자의 활동과 기여도를 평가할 수 있습니다. 웹사이트의 Q&A 활동에 더욱 적극적으로 참여하는 것은 웹사이트 활동과 사용자 경험을 개선하는 데 큰 의미가 있습니다 🎜.

위 내용은 PHP는 지식 질의응답 웹사이트에서 사용자 활동 및 기여도 통계 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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