Как из PHP отправить запрос в базу данных?
Может быть в заголовке вопрос задан не так, но нужна помощь. Есть форма на HTML для отправки кода:
<div class="block-head">Активация бонус-кодов</div>
<div class="block-body">
<div class="info_warning">
На данной странице Вы можете активировать, имеющийся у Вас, промо-код. Промо-коды можно найти на серверах,
получить в различных мероприятиях, получить как подарок на какой-либо праздник и т.д. Подробнее о получении и активации
Вы можете узнать в разделе <a href="/faq.html"><b>FAQ по проекту</b></a>.
</div><br>
Если у Вас есть бонус-код, то для получения различных бонусов введите его на этой странице.
Благодаря бонус-кодам Вы можете получить:
<br>
<ul style="list-style: none;">
<li>- Различного рода предметы в игре;</li>
<li>- Денежный бонус на счет;</li>
<li>- Полноценный статус на сервере.</li>
</ul>
<div class="promo_cont_title">Активация промо-кода</div>
<div class="promo_code_line">
Активация Вашего промо-кода<br/>
<span class="promo_code_desc">Введите промо-код в поле</span>
<div class="promo_block_button">
<form method="post" action="">
<input type="text" name="key" value="" placeholder="AAAA-BBBB-CCCC-DDDD" class="promo_tf" maxlength="19" required>
<a class="promo_code_info hint cursor" data-original-title="Промо-код обязательно должен состоять из 16 символов, в котором между каждыми 4-мя должен стоять дефис (тире)."><span class="icon-info"></span></a>
<input type="submit" value="Активировать" class="promo_button">
</form>
</div>
<div style="clear: right;"></div>
</div>
</div>
</div>
И есть PHP-код, который проверяет промокод и если он правильный, то обновляет баланс:
$userID = $_POST['user'];//пример получения id юзера которому идет зачисление
//if(!ctype_digit($userID)) die('Некорректный id');
$localhoctlogin= 'login';
$password = 'pass';
$database = 'dbname';
$code = htmlspecialchars($_POST['key']);
$connection = $mysqli = new mysqli ("127.0.0.1", $localhoctlogin, $password, $database);
if($connection){
$mysqli->query ("SET NAMES 'utf8'");
$getCode = $mysqli->query ("SELECT `price` FROM `promocodes` WHERE `code`='$code' LIMIT 1");
$result = $getCode ->num_rows;
@header ("Location: $redicet");
if($result == '0') die('Неверный промокод');
else{
$promo = mysqli_fetch_assoc($getCode);
$money = $promo['money'];
$updMoney= $mysqli->query ("UPDATE `dle_users` SET `money` = `money`+'$money' WHERE `userID` = '$userID' LIMIT 1;");
if($updMoney) echo 'Вам начислено '.$money.' сомони';
else die('Неожиданная ошибка начисления бонусов');
}
}
else die('Ошибка подключения к базе данных');
Так вот, нужно сделать так, чтобы при нажатии на "Активировать" код обратился к бд и обновил страницу, уже с обновлённым балансом.
Ответы (1 шт):
Автор решения: Pavel
→ Ссылка
Добавьте:
$updMoney= $mysqli->query ("UPDATE `dle_users` SET `money` = `money`+'$money' WHERE `userID` = '$userID' LIMIT 1;");
if($updMoney){
echo 'Вам начислено '.$money.' сомони';
$getBalance = $mysqli->query ("SELECT `money` FROM `dle_users` WHERE `userID`='$userID' LIMIT 1");
$balance = mysqli_fetch_assoc($getCode);
$balance = $balance['money'];
echo '<br>Ваш текущий баланс: '.$balance;
}
else die('Неожиданная ошибка начисления бонусов');