Я делаю форум для своей игры. В настоящее время я работаю над функцией редактирования. Что я пытаюсь выяснить, как я могу проверить, что зарегистрированный аккаунт принадлежит игроку, который отправил сообщение. Вы публикуете свой плеер, а не учетную запись. У вас может быть несколько игроков. Пользователь может иметь несколько «игроков», назначенных им. Если они не владеют игроком, который отправил сообщение, я хочу вернуть false, но если они это сделают, это правда.PDO запрос не возвращает ожидаемый результат
# 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.";
}
Не должно быть вашего запроса 'pl.account_id =?'? – halfer
да, мой плохой! но все равно не работает, он всегда возвращает false hmm – Kaka