在PHP中實現點贊功能,通常需要以下幾個步驟:
CREATE TABLE likes (
id INT AUTO_INCREMENT PRIMARY KEY,
content_id INT NOT NULL,
user_id INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (content_id) REFERENCES contents(id),
FOREIGN KEY (user_id) REFERENCES users(id)
);
function likeContent($content_id, $user_id) {
// 連接數據庫
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
// 檢查用戶是否已經點過贊
$sql = "SELECT COUNT(*) as count FROM likes WHERE content_id = ? AND user_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $content_id, $user_id);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
if ($row['count'] > 0) {
echo "用戶已經點過贊";
} else {
// 插入新的點贊記錄
$sql = "INSERT INTO likes (content_id, user_id) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $content_id, $user_id);
if ($stmt->execute()) {
// 更新內容的點贊計數
$sql = "UPDATE contents SET likes_count = likes_count + 1 WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $content_id);
$stmt->execute();
echo "點贊成功";
} else {
echo "點贊失敗: " . $conn->error;
}
}
// 關閉數據庫連接
$stmt->close();
$conn->close();
}
likeContent
函數并傳遞相應的參數。<button onclick="likeContent(<?php echo $content_id; ?>, <?php echo $user_id; ?>)">點贊</button>
這樣,當用戶點擊點贊按鈕時,PHP代碼會處理點贊邏輯,包括檢查用戶是否已經點過贊、在數據庫中插入新的點贊記錄以及更新內容的點贊計數。