PHP 實現知識問答網站中的使用者活躍度和貢獻度統計功能
隨著知識問答網站的興起,越來越多的人傾向於在這類平台上獲取和分享各種知識。為了提高用戶活躍度和鼓勵用戶做出更多貢獻,我們可以透過統計用戶在網站上的活動數據來評估他們的活躍度和貢獻度。本文將介紹如何使用 PHP 實現這項功能。
首先,我們需要了解使用者活躍度和貢獻度的概念。用戶活躍度指的是用戶在一定時間內在網站上發布問題、回答問題、按讚、評論等活動的頻率和數量。貢獻度則是使用者在網站上所做的具體貢獻,例如解答問題、解決問題、發布高品質的問題等。
在我們的實作中,我們將用戶活躍度定義為在最近一個月內的活動頻率,包括發佈問題、回答問題、按讚、留言等。貢獻度則是使用者在網站上發布問題和回答問題的總數。
首先,我們需要有一個使用者表來儲存使用者的基本訊息,例如使用者ID、使用者名稱等。我們可以建立一個名為 users 的資料庫表,並在其中建立對應的欄位。
CREATE TABLE 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
#)##) ;
$activity_type = 'question'; // 活動類型為問題發布
$created_at = date('Y-m-d H:i:s'); // 目前時間
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')); // 取得一個月前的日期
FROM activities WHERE user_id = $user_id AND created_at >= '$past_month'";$query = mysqli_query($conn, $sql);
$result = mysqli_fetch_assoc($query);
}
$sql = "SELECT count(*) as contribution_count
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);
}
$user_activity = get_user_activity($user_id);
echo "使用者活躍度:" . $user_activity;
$user_contribution = get_user_contribution($user_user_id );
echo "使用者貢獻度:" . $user_contribution;
以上是PHP 實作知識問答網站中的使用者活躍度和貢獻度統計功能。的詳細內容。更多資訊請關注PHP中文網其他相關文章!