Автор Тема: Прошу помощи по выводу  (Прочитано 846 раз)

0 Пользователей и 1 Гость просматривают эту тему.

morozАвтор темы

  • *
  • Оффлайн
  • Награды Более 4 лет на форуме !!! Более 10 сообщений
  • Дата регистрации: Авг. 2019
  • Забанен!
  • Сообщений: 17
  • Страна: ru
  • Поблагодарили: 2 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
Прошу помощи по выводу
« : 30 Октября 2019, 14:08:16 »
Не могу понять как исправить ошибку: Incorrect integer value: '' for column 'payment_id' at row 1

Мне пишут: "payment_id требует целое число, а не пустую строку. Нужно заменить значение на подходящее."  -  а где и что менять-то?

На одном хостинге работает всё, на другом вот эта ошибка при выплате.
 

GameRussia

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! Более 100 сообщений Репутация более 5 За помощь пользователям Более 10 созданных тем
  • Дата регистрации: Июнь 2017
  • Сообщений: 227
  • Страна: ru
  • Поблагодарили: 29 раз(а)
  • Репутация +9/-0
  • Пол: Мужской
Прошу помощи по выводу
« Ответ #1 : 30 Октября 2019, 19:26:45 »
При каких условиях появляется эта ошибка, какой запрос? Все же сказано уже, в колонке payment_id должно быть целое число, а не пустое значение.
 

morozАвтор темы

  • *
  • Оффлайн
  • Награды Более 4 лет на форуме !!! Более 10 сообщений
  • Дата регистрации: Авг. 2019
  • Забанен!
  • Сообщений: 17
  • Страна: ru
  • Поблагодарили: 2 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
Прошу помощи по выводу
« Ответ #2 : 31 Октября 2019, 10:42:39 »
При каких условиях появляется эта ошибка, какой запрос? Все же сказано уже, в колонке payment_id должно быть целое число, а не пустое значение.
Делаю вывод с баланса, деньги с кошелька отправляются, и вместо того, чтобы после выплаты открылась эта же страница с сообщением об успешной выплате, вместо текста появляется эта ошибка.
 

GameRussia

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! Более 100 сообщений Репутация более 5 За помощь пользователям Более 10 созданных тем
  • Дата регистрации: Июнь 2017
  • Сообщений: 227
  • Страна: ru
  • Поблагодарили: 29 раз(а)
  • Репутация +9/-0
  • Пол: Мужской
Прошу помощи по выводу
« Ответ #3 : 31 Октября 2019, 18:24:59 »
В это поле заносится пустота, приложи код создания выплаты
 

morozАвтор темы

  • *
  • Оффлайн
  • Награды Более 4 лет на форуме !!! Более 10 сообщений
  • Дата регистрации: Авг. 2019
  • Забанен!
  • Сообщений: 17
  • Страна: ru
  • Поблагодарили: 2 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
Прошу помощи по выводу
« Ответ #4 : 02 Ноября 2019, 09:24:12 »
В это поле заносится пустота, приложи код создания выплаты
<div class="page_bg">
      <div class="row">
      <h1 class="h1_index">Заказ выплаты - Payeer</h1>
<? include('inc/_user_menu.php');?>
 
<div class="xl_95 mra mla">
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Заказ выплаты - Payeer";
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];

$db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
$user_data = $db->FetchArray();

$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();

$db->Query("SELECT * FROM db_users_a, db_users_b WHERE db_users_a.id = db_users_b.id AND db_users_a.id = '$user_id'");
$prof_data = $db->FetchArray();

$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");

$min_insert = 0.00;
$minPay = 1; // Минималка серебром
$kom = 0; // Комиссия проекта в процентах
$komsys = 1.0; // Комиссия шлюза

# Важные параметры для функционирования расчета комиссии:
$komitog = $kom / 100; // Этот параметр не трогать!
$komsysitog = $komsys / 100; //Этот параметр не трогать!
$ps_key = '1136053'; // Параметр не трогать!
?>
<center style="font-size: 28px;color: #4598b4;"><a href="/account/payment/1">Payeer[/url] || <a href="/account/payment/2">Qiwi[/url] || <a href="/account/payment/3">Yandex Money[/url] || <a href="/account/payment/4">AdvCash[/url]</center>
<center>Автоматическая выплата на Qiwi. Комиссия <?=$komsys;?>%</center>
<center>Автоматическая выплата на Payeer. Комиссия <?=$komsys;?>%</center>
[br /]
<?PHP
   
function ViewPurse($purse){

if( substr($purse,0,1) != "P" ) return false;
if( !preg_match("/^[0-9]{7,15}$/", substr($purse,1)) ) return false;
return $purse;
}
   
   # Заносим выплату
   if(isset($_POST["purse"])){
   if($min_insert <= $user_data["insert_sum"]){
   $_POST["purse"] = $db->RealEscape($_POST['purse']);
   
      $purse = ViewPurse($_POST["purse"]);
      $purse = $db->RealEscape($_POST['purse']);
      $sum = intval($_POST["sum"]);
      $sum = $db->RealEscape($_POST['sum']);
      $val = "RUB";
      $sum_pay = sprintf("%.2f",$sum - ($sum * $komitog));
      
      if($purse !== false){
         
            if($sum >= $minPay){
            
               if($sum <= $user_data["money_p"]){
                  
                  # Проверяем на существующие заявки
                  $db->Query("SELECT COUNT(*) FROM db_payment WHERE user_id = '$usid' AND (status = '0' OR status = '1')");
                  if($db->FetchRow() == 0){
                        
                     ### Делаем выплату ###   
                     $payeer = new rfs_payeer($config->AccountNumber, $config->apiId, $config->apiKey);
                     if ($payeer->isAuth())
                     {
                        $arBalance = $payeer->getBalance();
                        if($arBalance["auth_error"] == 0)
                        {
                                                      
                           $balance = $arBalance["balance"]["RUB"]["DOSTUPNO"];
                           if( $arBalance["balance"]["RUB"]["DOSTUPNO"] > $sum_pay){
                           
                           $initOutput = $payeer->initOutput(array(
                                  // id платежной системы полученный из списка платежных систем
                                  'ps' => $ps_key,
                                  // счет, с которого будет списаны средства         
                                  'curIn' => 'RUB',
                                  // сумма вывода
                                  'sumIn' => $sum_pay,
                                  // валюта вывода 
                                  'curOut' => 'RUB',
                                  // Аккаунт получателя платежа 
                                  'param_ACCOUNT_NUMBER' => $purse,
                               ));
                        if ($initOutput){
                                  // Вывод средств
                                  $historyId = $payeer->output();
                                  if ($historyId)
                                  {      
                                 # Вставляем запись в выплаты
                                 $da = time();
                                 $dd = $da + 60*60*24*15;
                                 
                                 $ppid = $historyId;
                              
                                 # Снимаем с пользователя
                                 $db->Query("UPDATE db_users_b SET money_p = money_p - '$sum' WHERE id = '$usid'");
                                 
                                 # Вставляем запись в выплаты
                                 $da = time();
                                 $dd = $da + 60*60*24*15;
                                 
                                 $ppid = $arTransfer["historyId"];
                                 
                                 $db->Query("INSERT INTO db_payment (user, user_id, purse, sum, valuta, serebro, pay_sys, payment_id, date_add, status)
                                 VALUES ('$usname','$usid','$purse','$sum_pay','RUB', '$sum', '1', '$ppid','".time()."', '3')");
                                 
                                 $db->Query("UPDATE db_users_b SET payment_sum = payment_sum + '$sum_pay' WHERE id = '$usid'");
                                 $db->Query("UPDATE db_stats SET all_payments = all_payments + '$sum_pay' WHERE id = '1'");
                                 
                                 echo "<center><font color = 'green'>Успешно выплачено</font></center>[br /]";
                                 }
                                 else
                                 {   
                                    echo 'Ошибка автоматизации №1';
                                    #echo '
'.print_r($payeer->getErrors(), true).'
';
                                 }
                              }
                              else
                              {                          
                                 echo 'Ошибка автоматизации №1';
                                 #echo '
'.print_r($payeer->getErrors(), true).'
';
                              }
                              
                             }else echo "<center><font color = 'red'>Ошибка №1! Ведутся технические работы! Попробуйте позже!</font></center>[br /]";
                           
                           }else echo "<center><font color = 'red'>Ошибка №2! Ведутся технические работы! Попробуйте позже!</font></center>[br /]";
                     
                        }else echo "<center><font color = 'red'>Ошибка №3! Ведутся технические работы! Попробуйте позже!</font></center>[br /]";
                        
                     }else echo "<center><font color = 'red'>Ошибка №4! Ведутся технические работы! Попробуйте позже!</font></center>[br /]";

               }else echo "<center><font color = 'red'>Вы указали больше, чем имеется на вашем счету</font></center>[br /]";
            
            }else echo "<center><font color = 'red'>Минимальная сумма для выплаты составляет {$minPay} руб!</font></center>[br /]";
      
      }else echo "<center><font color = 'red'>Кошелек Payeer указан неверно! Смотрите образец!</font></center>[br /]";
   
   }else echo "<center><font color = 'red'>Чтобы сформировать заявку на выплату, необходимо пополнить баланс на общую символическую сумму не менее {$min_insert} рублей!</font></center>[br /]";      
   }
?>
<script type="text/javascript">
var ser_pr = <?=$komsysitog;?>;
var ser_pr2 = <?=$komitog;?>

function calculate(st_q) {
   var sum_insert = parseFloat(st_q);
   spd = ( (sum_insert - (sum_insert * ser_pr2 + sum_insert * ser_pr)).toFixed(2) );
   $("#p_sum").attr("value", spd);
}
   
</script>
<form action="" method="post">
<table width="99%" border="1" align="center">
  <tr>
    <td><h4>Введите кошелек Payeer [Пример: P12345678]:</h4> </td>
   <td><input type="text" name="purse" size="15"/></td>
  </tr>
  <tr>
    <td><h4>Сумма вывода:</h4></td>
   <td><input type="text" name="sum" id="sum" size="15" onchange="calculate(this.value)" onkeyup="calculate(this.value)" onfocusout="calculate(this.value)" onactivate="calculate(this.value)" ondeactivate="calculate(this.value)" /></td>
  </tr>
  <tr>
   <td><h4>Получаете:</h4></td>
    <td><input type="text" id="p_sum" value="" size="15" readonly="readonly" onchange="calculate(this.value)" onkeyup="calculate(this.value)" onfocusout="calculate(this.value)" onactivate="calculate(this.value)" ondeactivate="calculate(this.value)"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input type="submit" name="swap" value="Заказать выплату" class="btn" style="margin-top:10px;" /></td>
  </tr>
</table>
</form>
<script language="javascript">PaymentSum(); SetVal();</script>


 <div class="mt30 xl_95 mra mla">
   <p class="mb10 heads"><i class="fa fa-pie-chart" aria-hidden="true"> Последние 10 выплат</p>
   <div class="table th flex jcsb aic tac">
   <div class="xl_25 wsnw_3p pager-order" data-model="referals" data-order="id">Руб</div>
      <div class="xl_25 wsnw_3p pager-order" data-model="referals" data-order="nick">Получаете</div>
      <div class="xl_15 pager-order" data-model="referals" data-order="money_to_ref">Кошелек</div>
      <div class="xl_15 pager-order" data-model="referals" data-order="reg_date">Дата</div>
      <div class="xl_15 pager-order" data-model="referals" data-order="reg_date">Статус</div>
   </div>

  <?PHP
 
  $db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' ORDER BY id DESC LIMIT 20");
 
   if($db->NumRows() > 0){
 
        while($ref = $db->FetchArray()){
      
      ?>
      <div class="table flex jcsb aic tac"  data-row="referals">
      <div class="xl_25"><?=$ref["serebro"]; ?></div>
      <div class="xl_25"><?=sprintf("%.2f",$ref["sum"] - $ref["comission"]); ?> <?=$config->VAL; ?></div>
      <div class="xl_15"><?=$ref["purse"]; ?></div>
      <div class="xl_15"><?=date("d.m.Y",$ref["date_add"]); ?></div>
      <div class="xl_15"><?=$status_array[$ref["status"]]; ?></div>
      
      
   </div>
      
      <?PHP
      
      }
 
   }else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
 
  ?>

 
</div>   
[br /][br /][br /][br /][br /][br /]
   
</div></div>      
</div>
 

GameRussia

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! Более 100 сообщений Репутация более 5 За помощь пользователям Более 10 созданных тем
  • Дата регистрации: Июнь 2017
  • Сообщений: 227
  • Страна: ru
  • Поблагодарили: 29 раз(а)
  • Репутация +9/-0
  • Пол: Мужской
Прошу помощи по выводу
« Ответ #5 : 02 Ноября 2019, 21:01:10 »
Учись анализировать код!
В поле payment_id заносится значение переменной $ppid, которое присваивается 2 раза
$ppid = $historyId;
                             
                                 # Снимаем с пользователя
                                 $db->Query("UPDATE db_users_b SET money_p = money_p - '$sum' WHERE id = '$usid'");
                                 
                                 # Вставляем запись в выплаты
                                 $da = time();
                                 $dd = $da + 60*60*24*15;
                                 
                                 $ppid = $arTransfer["historyId"];
В первом случае, возможно в переменной что-то есть, а во втором - $ppid = $arTransfer["historyId"]; Ничего нет! Так как массива $arTransfer попросту не существует! Попробуй закомментировать строку $ppid = $arTransfer["historyId"];
 

morozАвтор темы

  • *
  • Оффлайн
  • Награды Более 4 лет на форуме !!! Более 10 сообщений
  • Дата регистрации: Авг. 2019
  • Забанен!
  • Сообщений: 17
  • Страна: ru
  • Поблагодарили: 2 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
Прошу помощи по выводу
« Ответ #6 : 03 Ноября 2019, 08:45:49 »
Учись анализировать код!
В поле payment_id заносится значение переменной $ppid, которое присваивается 2 раза
$ppid = $historyId;
                             
                                 # Снимаем с пользователя
                                 $db->Query("UPDATE db_users_b SET money_p = money_p - '$sum' WHERE id = '$usid'");
                                 
                                 # Вставляем запись в выплаты
                                 $da = time();
                                 $dd = $da + 60*60*24*15;
                                 
                                 $ppid = $arTransfer["historyId"];
В первом случае, возможно в переменной что-то есть, а во втором - $ppid = $arTransfer["historyId"]; Ничего нет! Так как массива $arTransfer попросту не существует! Попробуй закомментировать строку $ppid = $arTransfer["historyId"];

Спасибо. С этим проблем не стало. Но вот почему тогда при пополнении на баланс перестало зачисляться? Неужели хостинг всё-таки такой?
 
Теги: