За последние 24 часа нас посетили 21472 программиста и 1025 роботов. Сейчас ищут 705 программистов ...

Начисление дохода

Тема в разделе "PHP для новичков", создана пользователем Владимир11, 2 авг 2020.

Метки:
  1. Владимир11

    Владимир11 Активный пользователь

    С нами с:
    20 май 2018
    Сообщения:
    140
    Симпатии:
    0
    подскажите мой код делает начисление ежедневно по вкладам, проблема в том что если юзер купит два тарифа одинаковых начисление идет только по одному как это исправить?




    PHP:
    1. $user_id = $_SESSION["user_id"];
    2. $db->Query("SELECT * FROM db_users_b WHERE id = $user_id");
    3. $user_data = $db->FetchArray();
    4. $db->Query("SELECT * FROM `db_tarif_buy_50` WHERE `user_id` = '$user_id' AND DATE(`date`) < CURDATE() AND `date_end` >= NOW()");
    5. $count_tarifs2 = $db->NumRows();
    6.  
    7. if($count_tarifs2 > 0){
    8.     $data_tarifs2 = array();
    9.                     while($result2 = $db->FetchArray()){
    10.                         $data_tarifs2[] = $result2;
    11.                     }
    12.                      foreach($data_tarifs2 as $key2 => $array2){
    13.                         $db->Query("SELECT * FROM `db_tarif_profit_50` WHERE `user_id` = '$user_id' AND `tarif` = '".$array2['tarif']."' AND DATE(`date`) = CURDATE()");
    14.                         if($db->NumRows() == 0){
    15.                             $db->Query("SELECT * FROM `db_tarif_50` WHERE `id` = '".$array2['tarif']."'");
    16.                             if($db->NumRows() > 0){
    17. $data_tarif2 = $db->FetchArray();
    18. $percentprofit2 = ($array2['sum'] * ($data_tarif2['profit']/100));
    19. $nach2 = 1;
    20. $db->Query("INSERT INTO `db_tarif_profit_50` (`user_id`,`tarif`,`amount`, `nach`) VALUES ('$user_id','".$data_tarif2['id']."','".$percentprofit2."','".$nach2."')");
    21. $db->query("UPDATE `db_users_b` SET `money_b` = `money_b` + '".($percentprofit2/2)."', `money_p` = `money_p` + '".($percentprofit2/2)."' WHERE `id` = '$user_id'");
    22. $db->query("UPDATE `db_tarif_buy_50` SET `nachisleno` = `nachisleno` + '".$nach2."' WHERE `id` = '".$data_tarif2['id']."' AND `user_id` = '$user_id'");
    23. }
    24. }
    25. }
    26. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Для каждого тарифа считать отдельно
     
  3. Владимир11

    Владимир11 Активный пользователь

    С нами с:
    20 май 2018
    Сообщения:
    140
    Симпатии:
    0

    Подскажи что я упустил если делать //echo "<br>".$array['login']." ".$array['user_id']." ".$array['tarif']." ".$array['sum']." ".$array['sum']." ".$data_tarif2['profit'];

    ТО выводит весь список к примеру
    вася сумма 1 тариф 1
    вася сумма 2 тариф 1
    петя сумма 1 тариф 3

    А вот когда идет insert в бд идет только
    вася сумма 1 тариф 1
    петя сумма 1 тариф 3




    Код (Text):
    1. $db->Query("SELECT * FROM db_tarif_buy_50");
    2. if($db->NumRows() > 0){
    3. while($ref = $db->FetchArray()){
    4.      $data_tarifs2[] = $ref;
    5.     }
    6. }
    7. foreach($data_tarifs2 as $key => $array){
    8.    
    9.     $db->Query("SELECT * FROM `db_tarif_profit_50` WHERE `user_id` = '".$array['user_id']."' AND `tarif` = '".$array['tarif']."' AND DATE(`date`) = CURDATE()");
    10.     if($db->NumRows() == 0){
    11.         $db->Query("SELECT * FROM `db_tarif_50` WHERE `id` = '".$array['tarif']."'");
    12.     $data_tarif2 = $db->FetchArray();
    13.     //echo "<br>".$array['login']." ".$array['user_id']." ".$array['tarif']." ".$array['sum']." ".$array['sum']." ".$data_tarif2['profit'];
    14.     $percentprofit2 = ($array['sum'] * ($data_tarif2['profit']/100));
    15.     $nach2 = 1;
    16.     $db->Query("INSERT INTO `db_tarif_profit_50` (`user_id`,`tarif`,`amount`, `nach`) VALUES ('".$array['user_id']."','".$array['tarif']."','".$percentprofit2."','".$nach2."')");
    17.     $db->query("UPDATE `db_users_b` SET `money_b` = `money_b` + '".($percentprofit2/2)."', `money_p` = `money_p` + '".($percentprofit2/2)."' WHERE `id` = '".$array['user_id']."'");
    18. $db->query("UPDATE `db_tarif_buy_50` SET `nachisleno` = `nachisleno` + '".$nach2."' WHERE `amount` = '".$data_tarif2['']."' AND `user_id` = '".$array['user_id']."'");
    19.     }
    20.  
    21.  
    22.  
    23. }
     
  4. Владимир11

    Владимир11 Активный пользователь

    С нами с:
    20 май 2018
    Сообщения:
    140
    Симпатии:
    0
    Я не пойму почему но когда я сделал так все заработало $db->Query("SELECT * FROM `db_tarif_profit_50` WHERE `id` = '".$array['id']."' AND `tarif` = '".$array['tarif']."' AND `id` = '".$array['id']."' AND DATE(`date`) = CURDATE()");