Снятие баланса и проверка баланса PHP

149
24 апреля 2018, 01:32

Здравствуйте помогите сделать проверку, уже два дня ищу решение так и не могу найти. Нужно когда юзер жмякал кнопку то с его баланса списывалось 1 тысяча. Но если его баланс менее чем 1 тысяча а 999 то выдает ошибку. $paymenttext_error

if($_POST['payments'])  
{ 
  $rp = $mysql->query("SELECT * FROM `accounts` WHERE `Name` = '{$_SESSION['username']}'")->num_rows; 
  if($rp >= 1)  
  { 
    if($_POST['payments'])  
	{ 
      $mysql->query("UPDATE `accounts` SET `pLevel` = `pLevel`-1000 WHERE `Name` = '{$_SESSION['username']}'"); 
      $paymenttext_success = "Баланс был успешно снят! [Код: 1]"; 
    }  
	else 
	{ 
      $paymenttext_error = "Ошибка при выполнении. >> отрицательный баланс [Код: 2]"; 
    } 
  }  
  else  
  { 
    $paymenttext_login = "Войдите в личный кабинет!!! [Код: 3]"; 
  } 
}

Кнопка вызывающая этот скрипт:

<input type="submit" name="payments" value="Сменить пароль>

Answer 1

начнем с того что вы скорее всего вообще не понимаете что вы делаете:

  $rp = $mysql->query("SELECT * FROM `accounts` WHERE `Name` = '{$_SESSION['username']}'")->num_rows;

этот запрос получает цифру, т.е. количество строк которые вернула mysql. 1. Допустим в сесси null есть вариант, что и в базе данных буде строка с именем null и у кого снимет баланс непонятно! 2. Все же нас интересует не количество строк, а именно pLevel потому стоит строку немного переписать.

    if(is_string($_SESSION['username'])){
       $rp = $mysql->query("SELECT * FROM `accounts` WHERE `Name` = '{$_SESSION['username']}'");
       if($rp->num_rows >= 1) {
          $row = $rp->fetch_assoc();
          if($row['pLevel']>999){
             // Здесь снимаем баланс
          }else{
            // Здесь ошибка, что у вас нет на балансе
          }
       }else{
         // Здесь ошибка что такого юзера нет
       }
   }else{
    // Здесь ошибка, что не авторизован
  }

В итоге получается всего-то надо, читать документацию, не пользоваться старыми функциями, проверять, что прислал юзер (обязательно), и делать выводы в сторону изучения работы с БД

READ ALSO
Смысл в php, если есть Vue.js [требует правки]

Смысл в php, если есть Vue.js [требует правки]

Недавно начал изучать Vuejs

156
Границы Excel в PHP

Границы Excel в PHP

Не могу задать черную границу ячейки

154
Изменение разметки - jQuery/Bootstrap Grid

Изменение разметки - jQuery/Bootstrap Grid

Имею сверстанное объявление для ПК версии, выглядит оно так: Теперь задача предстоит в том, что бы оформить его для смартфонов, вот так:

191