SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.01.2018 13:47:24

KiViTaL
Участник
Зарегистрирован: 19.01.2018
Сообщений: 13

Баланс

Как сделать, чтобы при нулевом балансе выдавало ошибку и не записывались данные в таблицу?
Есть две таблицы одна usertbl(id,username,password,balance) articles(id, gnumber, telephone, author, publicationdate)

<?php session_start();
 
 
if(!isset($_SESSION["session_username"])):
header("location:login.php");
else:
?>
<?php
 
if(isset($_POST["add"])){
 
$gnumber= htmlspecialchars($_POST['gnumber']);
$telephone=htmlspecialchars($_POST['telephone']);
$author=htmlspecialchars($_POST['author']);
$publicationdate=htmlspecialchars($_POST['publicationdate']);
 
 
if(!empty($gnumber) && !empty($telephone) && !empty($author)  && !empty($publicationdate)) {
    $sql="INSERT INTO articles (gnumber, telephone, author, publicationdate) VALUES ('$gnumber','$telephone', '$author', '$publicationdate' )";
$result=mysqli_query($con, $sql);
$editbalance="UPDATE usertbl SET balance=balance-1 WHERE username='".$_SESSION['session_username']."'";
    $minus=mysqli_query($con, $editbalance);
    header("Cache-Control: no-store,no-cache,mustrevalidate");
} else {
$message = "Имя пользователя уже занято!";
}
 
} else {
 
$message = "Все поля обязательны для заполнения!";
 
}
 
 
?>
 
 
<?php
$balance = mysqli_query ($con, "SELECT * FROM usertbl WHERE username='".$_SESSION['session_username']."'");
while ($myrow = mysqli_fetch_assoc ($balance))
 {echo '<b>Баланс: '. $myrow['balance'].'</b>';}?>

Неактивен

 

#2 19.01.2018 15:21:25

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: Баланс

- Прибор.
- 600.
- Что 600?
- А что прибор?

ЗЫ
Вы, надеюсь, обратили внимание, на название форума?

Неактивен

 

#3 19.01.2018 16:38:53

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Баланс

klow, там на самом деле есть вопрос вполне осмысленный. Возможно, и правда не по теме форума, и можно средиректить на webew.ru, там на php-вопросы отвечают.

Но тут, кажется, можно сразу ответить.

KiViTaL:
У Вас уже есть все запросы. Просто сначала выполняете нижний, после этого баланс будет в $myrow['balance']. И дальше делаете проверку до изменения:

if ($myrow['balance'] == 0) {
  $message = 'У Вас закончились деньги';
} else {
  ... (тут логика из верхней части кода)
}

Неактивен

 

#4 22.01.2018 08:21:18

KiViTaL
Участник
Зарегистрирован: 19.01.2018
Сообщений: 13

Re: Баланс

paulus написал:

klow, там на самом деле есть вопрос вполне осмысленный. Возможно, и правда не по теме форума, и можно средиректить на webew.ru, там на php-вопросы отвечают.

Но тут, кажется, можно сразу ответить.

KiViTaL:
У Вас уже есть все запросы. Просто сначала выполняете нижний, после этого баланс будет в $myrow['balance']. И дальше делаете проверку до изменения:

if ($myrow['balance'] == 0) {
  $message = 'У Вас закончились деньги';
} else {
  ... (тут логика из верхней части кода)
}

Спасибо большое, помогли решить трехдневный ступор)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson