Передача СидБонусов

Бандерас

Пользователь
Может кто подсказать как делать запрос с базы данных (SELECT) количество (остаток) Сидбонусов у пользователя который отправляет. Добавил условия проверки $userpoints <= $user_points, при первом переводе сидбонусов. Но при вторичном передаче данные об остатке не обновляются у отправляющего...
PHP:
<?php
$to = isset($_GET['to']) ? $_GET['to'] : 0;
$userpoints = isset($_POST['bonus']) ? $_POST['bonus'] : 0;

$user_points = $userdata['user_points'];

if ($userpoints > 0) { $check = true; } else { $check = false; }
if ($userpoints <= $user_points) { $checkone = true; } else { $checkone = false; }

if ($to AND $check && $checkone)
{
    $nick = get_userdata($to);

    DB()->query("UPDATE bb_users SET user_points = user_points - $userpoints WHERE user_id = ".$userdata['user_id']."");
    DB()->query("UPDATE bb_users SET user_points = user_points + $userpoints WHERE user_id = $to");

    bb_die('Вы отдали '.$userpoints.' бонусов пользователю '.$nick['username'].'<br><br><a href="profile.php?mode=viewprofile&u='.$to.'">Вернуться в профиль</a>');
}
bb_die('Отсутствуют данные для отправки<br><hr>Используйте кнопку в профиле пользователя<br><br><a href="profile.php?mode=viewprofile&u='.$to.'">Вернуться в профиль</a>');
?>
 
Последнее редактирование:

PheRum

Пользователь
ну так кеш юзердаты потому что надо обновить.

после sql передачи сидбонуса добавь

Код:
cache_rm_userdata($nick);
cache_rm_userdata($userdata);
 

Бандерас

Пользователь
Добавить после этих строк? что то не обновляет...
DB()->query("UPDATE bb_users SET user_points = user_points - $userpoints WHERE user_id = ".$userdata['user_id']."");
DB()->query("UPDATE bb_users SET user_points = user_points + $userpoints WHERE user_id = $to");

старые параметры сидбонусов у отправляющего также остались после перевода
 

PheRum

Пользователь
Бандерас во-первых так юзердату не меняют
это делается так

Код:
db_update_userdata($userdata, [
    'user_points' => $userdata['user_points'] - $userpoints,
]);

db_update_userdata($nick, [
    'user_points' => $nick['user_points'] + $userpoints,
]);
во-вторых, если тебе надо чтоб еще и в профиле актуальная инфа была, то тот кеш тоже надо обновить

Код:
CACHE('bb_cache')->rm('btu_' . $userdata['user_id']);
CACHE('bb_cache')->rm('btu_' . $nick['user_id']);
 

Бандерас

Пользователь
PheRum спасибо! но для меня это пока сложно понять. Попробовал сделать всё из сказанного, походу я не верно делаю...
ладно, пусть остается с ошибками... Может когда нибудь исправлю...
 

Inkognito

Пользователь
Отсутствуют данные для отправки
Используйте кнопку в профиле пользователя
что нужно делать подскажите???
самому себе получается а другим нет. протестировал на несколько пользователей
 
Сверху