我正在为我的游戏创建一个论坛。目前我正在研究编辑功能。我试图弄清楚如何检查登录帐户是否拥有发布消息的玩家。您发布的是您的播放器,而不是帐户。你可以有几个玩家。一个用户可以有几个“玩家”分配给他们。如果他们不拥有发布消息的玩家,我想返回 false,但如果他们拥有,则返回 true。
# table accounts
id | username | password
# table posts
id | posterid (this is the player id) | message
# table players
id | account_id | name
这就是我已经走了多远。但这无论如何都会返回 false 。有一个 ID 为 666 的帖子,发布该帖子的玩家归帐户 34767 所有。所以它应该可以工作。
function can_we_edit_post($pid) {
global $db;
// Let's see if they have permission to edit
$stmt = $db->prepare("SELECT * FROM players pl a JOIN posts p ON p.id = $pid WHERE pl.account_id = 34767");
$stmt->execute(array(34767));
$row = $stmt->fetch();
// Check if we got any rows
if ($row) {
return true;
} else {
return false;
}
}
if (can_we_edit_post(666)) {
echo "You may edit this post.";
} else {
echo "You do not own this post.";
}