pasperfectionist
@pasperfectionist

Как изменять значение в БД по нажатию кнопки?

Как при нажатии на кнопку изменить значение в базе данных ('users') у пользователя?

Пользователь зарегистрировался. Получил свой id. А вместе с ним и свой (игровой) счёт "Balance" на котором 0. Дальше он нажимает на кнопку. И теперь на его счете "Balance: 1".
5e0bf464dd2ec364467449.jpeg
5e0bf5e2b2dc2794140593.jpeg

Мне посоветовали сделать так:

На php сначала получите значение столбца, а потом прибавьте нужное вам значение и перезапишите итог в столбец.

$value1=$bd->query("SELECT `balance` FROM `table_name` WHERE `id`='userid'")->fetch_array(MYSQLI_ASSOC);
$value=$value1+$value2//value2 может иметь любое значение которое вам нужно прибавить
$bd->query("UPDATE `table_name` SET `balance`='".$value."' WHERE `id`='user_id'");

Но для вызова при нажатии на кнопку придется использовать javascript. Иначе никак.

Но что-то уже какой день не получается реализовать. Помогите, пожалуйста.
  • Вопрос задан
  • 1416 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Никак

При нажатии на кнопку в браузере нельзя изменить значение в бд.
При нажатии на кнопку можно только отправить запрос в пхп.
А уже в пхп можно выполнить запрос к бд.
То есть это два действия, а не одно. И выполнять их надо по очереди.
Именно поэтому у тебя не получается. Потому что ты пытаешься делать два дела одновременно. Делай их по очереди.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
john36allTa
@john36allTa
alien glow of a dirty mind
UPDATE table_name
SET balance = balance + 1
WHERE id=user_id;
Ответ написан
Комментировать
@illiatovpeko
Самолепный ВебдевелопЁр
Но для вызова при нажатии на кнопку прийдется использовать javascript. Иначе никак.

Так а в чём проблема? Так и делай. И будет тебе реализовано изменение значения в БД посредством нажатия одной клавиши. JS для взаимодействия с пользователем как раз и существует. А PHP - для работы НЕ с пользователем. Испокон веков живут в симбиозе :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы