Как добавить к значению в таблице число по условию в mysql?
Помогите, пожалуйста, сделать скрипт на чистом php Необходим пример подключения к базе данных и в таблице users в столбцe balance отнимать значение 5 у всех пользователей в том случае, если баланс < 4 то не отнимать
Отслеживать
20.4k 3 3 золотых знака 27 27 серебряных знаков 49 49 бронзовых знаков
задан 23 фев 2020 в 10:03
Php help pls Php help pls
17 3 3 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Если на чистом php(Без использования PDO), то так(протестировано):
Отслеживать
ответ дан 23 фев 2020 в 10:11
Denis640Kb Denis640Kb
14k 5 5 золотых знаков 22 22 серебряных знака 46 46 бронзовых знаков
ПДО — это тоже «чистый» пхп
25 фев 2020 в 7:23
- php
- база-данных
- mysqli
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как лучше реализовывать баланс?
Делаю сайт для игры. Игроки донатят. Как лучше хранить баланс? Создать таблицу для хранения платежей (пополнения списания) и считать баланс путем сложения операций? Или просто создать колонку balance и все?
- Вопрос задан более трёх лет назад
- 789 просмотров
Комментировать
Решения вопроса 3
Full Stack Developer
Создать таблицу для хранения платежей (пополнения списания) и считать баланс путем сложения операций? Или просто создать колонку balance и все?
И то и другое. Колонка balance для быстрого получение этой информации, чтобы, к примеру, выводить на странице профиля. Но при любой операции с балансом эту колонку пересчитываем путем сложения. Так же не стоит её использовать при определении того хватает ли пользователю на какую-то операцию или нет.
Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать

ThunderCat @ThunderCat Куратор тега PHP
Все операции должны быть логированы, соответственно таблица, выборка, подсчет.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
aynur_safin @aynur_safin
Или просто создать колонку balance и все?
Так делать не рекомендую, может возникнуть ситуация, когда обновление записи может быть производится из двух потоков, например пользователь пополняет баланс, а в это время сервис списывает с него, и одна из операций не выполнится, т.к. запись будет заблокирована. Поэтому, лучше определять баланс сложением операций, но не за весь период, а например хранить остатки на начало месяца и прибавлять к нему обороты с начала месяца. А оперативный баланс, чисто для отображения в интерфейсе, можно держать в кэше и обновлять при добавлении операций.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- PHP
- +1 ещё
Как сделать кастомную иерархию шаблонов в WordPress?
- 1 подписчик
- 4 минуты назад
- 1 просмотр
Как вывести баланс пользователя из PHP MY ADMIN?

Sigar49, ну если Я правильно понимаю, ты используешь PDO. Мне нужно понять весь твой код. Так что выложи его. У тебя подключение базы и вывод в одном файле? Или в разных? Как ты передаёшь данные?

Вот пример кода, только замени на своё
Sigar49 @Sigar49 Автор вопроса
query("SELECT * FROM `reg` WHERE `card`='$card' AND `code`='$code'"); $user = $result->fetch_assoc(); if (count($user) == 0) < header('location: /error'); >$b = $mysql->query("SELECT `balance` FROM `reg` WHERE `card`='$card' AND `code`='$code'"); $balance = $b->fetch_assoc(); $mysql->close(); ?>

После того, как ты вызвал функцию b -> fetch_assoc();
foreach($balance as $balance)
Balance: вы получите данные которые у вас в таблице. И Я не вижу чтобы вы взяли из запороса данные о деньгах, вижу только карта и код
php+mysql система бонусов
есть система бонусов, она состоит из таблицы, формы и пхп скрипта для отправки значений формы в таблицу.
суть скрипта — взять уже существующее число и добавить к нему то число, какое мы вводим в форму, т.е тупо добавить бонусов
mysql_connect($bd_host,$bd_name,$bd_pass) OR DIE("Не могу создать соединение"); if (empty($_POST['usernamefrm']) && empty($_POST['$mnfrst'])) < echo "";exit;>mysql_select_db($bdicn) OR DIE("Не могу создать соединение"); //получаем из формы введенные данные, usernamefrm - ник; mnfrst - введенные бонусы(money first) $usernamefrm = $_REQUEST["usernamefrm"]; $mnfrst = $_REQUEST["mnfrst"]; $query1 = BD("SELECT balance FROM iсonomy WHERE username='$usernamefrm'") or die(mysql_error()); //берём из бд уже существующее значение $result1 = mysql_fetch_array($query1);// выполняем запрос собственно $mnscnd = $result1 ['balance']; $mnthrd = '"$mnfrst" + "$mnscnd"'; //складываем оба значения $query2 = BD("UPDATE iconomy SET balance = '".$mnthrd."' WHERE username = '".$usernamefrm."'") or die(mysql_error()); //вставляем в таблицу сумму того что уже было и того, что мы ввели в форму $result2 = mysql_query($query2) or die(mysql_error()); if ($result !==0)< echo("Пользователю $usernamefrm добавлено $mnfrst бонусов