Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (6)

Лучшие ответы пользователя

Все ответы (2)
  • Как сохранить значение элемента в БД?

    Данный подход имеет недостатки. и основной - это безопасность:
    Ваш вариант, предполагает управление неким балансом из JS, который выполняется на стороне клиента (в браузере). А как мы знаем, что может JS - то сможет повторить или изменить пользователь.
    Более правильным было бы решение, когда данными управлял сервер - либо через PHP, либо сама БД. Например: в момент, когда страница генерируется - вы записываете в столбец строки с балансом еще и время. А когда пользователь нажмет кнопку, вычисляете сколько времени прошло и собственно изменяете баланс на нужную величину. При таком раскладе, пользователь не сможет просто так взять и хакнуть свой баланс.

    Что касается вашего вопросы и самой реализации, то тут все просто:
    (вы не указали какая БД, опишу про MySQL)
    (для упрощения, я не делаю проверок на наличие и корректность данных. обязательно сделайте)

    $userId = 1;
    
    //Подключаем БД
    $mysqli = new mysqli('example.com', 'user', 'password', 'database');
    if ($mysqli->connect_errno) {
        echo "Не удалось подключиться к MySQL: " . $mysqli->connect_error;
        return;
    }
    
    //Сохраняем баланс, если передан параметр apply методом POST
    if (isset($_POST['balance'])){
        $newBalance = $_POST['balance'];
        $stmt = $mysqli->prepare("UPDATE users SET balance=? WHERE id=?");
        $stmt->bind_param('si', $newBalance, $userId);
        $stmt->execute();
        echo "OK";
        return;
    }
    
    //Забираем текущий баланс 
    $res = $mysqli->query('SELECT balance FROM users WHERE usersId='.$userId);
    $row = $res->fetch_assoc();
    $balance = $row['balance'];
    
    //Где то дальше
    echo "<span>$balance</span>";
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (2)