profit
Местный
Ругается на 59 строку иногда еще пишет 56
Вложения
-
7,3 КБ Просмотры: 139
ты правильно сделал. почему я выложил в таком варианте не помню... сейчас перезалью с твоими правкамиМожет кому пригодится, может это даже только у меня так но мало ли, передвинул этот кусок кода ниже "
$db->Query("SELECT COUNT(`id`) FROM `ref_system` ORDER BY `id` ASC");
$count_level = $db->FetchRow();
if($count_level > 0){
$i = 0;
$total_refs = 0;
$count_refs = array();
$data_ref = array();
GetIds($user_id,$i);
}
"
Что бы сначала была фцункция GetIds а после нее уже этот код и у меня все заработало, модуль крутой спасибо
Узнать больше об этом обновлении...Исправлена ошибка Backend fatal error: PHP Fatal error: Call to undefined function GetIds
Спасибо за исправление @profit
function SetReferals($sum, $referal){
$ref_system = $this->db->query("SELECT `rs_percent` FROM `db_ref_system` ORDER BY `id` ASC"); // извлечение процентов, сортировка их по ID в порядке возрастания
if($ref_system->NumRows()>0){ // проверка есть ли данные в предыдущем запросе
foreach($ref_system->fetchAll() as $ref){
$percent[] = $ref['rs_percent']; // добавление в массив процентов
}
$sum = floatval($sum);
$sum = round($sum, 2);
$referal = intval($referal);
$i=0; // счетчик массива
while ($percent){ // цикл, работает пока не переберет в массиве $percent все строки
if($referal == 1){ // если ID пользователя 1, останавливаем цикл
break;
}
$ref_id = $this->db->query("SELECT `referer_id` FROM `db_users` WHERE `uid` = ?",$referal)->fetchArray(); // извлечение ID реферера
$referer = $ref_id['referer_id'];
$sum_ref = round(($sum * $percent[$i]/100),2); // сумма реферальных
$this->db->query("UPDATE `db_users` SET `balance_main` = `balance_main` + ? WHERE `uid` = ?",[$sum_ref,$referer]);
$this->db->query("UPDATE `db_users_stats` SET `us_ref_fees` = `us_ref_fees` + ? WHERE `us_uid` = ?",[$sum_ref,$referer]);
$this->db->query("UPDATE `db_users_stats` SET `us_ref_to` = `us_ref_to` + ? WHERE `us_uid` = ?",[$sum_ref,$referal]);
$this->db->query("SELECT * FROM `db_users_ref` WHERE `ur_from_user` = ? AND `ur_to_user` = ?",[$referal,$referer]);
if($this->db->NumRows() == 1){
$this->db->query("UPDATE `db_users_ref` SET `ur_money` = `ur_money` + ? WHERE `ur_from_user` = ? AND `ur_to_user` = ?",[$sum_ref,$referal,$referer]);
}
if($this->db->NumRows() == 0){
$this->db->query("INSERT INTO `db_users_ref` (`ur_from_user`,`ur_to_user`,`ur_money`) VALUES (?,?,?)",[$referal,$referer,$sum]);
}
$referal = intval($referer);//в переменную реферала записываем значение реферера для продолжения работы цикла
$i++;// увеличение счетчика на 1
}
}
}
foreach($percent as $lvl){
и строку $sum_ref = round(($sum * $percent[$i]/100),2);
на $sum_ref = round(($sum * $lvl[$i]/100),2);
.class referals{
private $pdo;
public function __construct($pdo)
{
$this->pdo = $pdo;
}
function SetReferals($sum, $referal){
$ref_system = $this->pdo->prepare("SELECT `rs_percent` FROM `db_ref_system` ORDER BY `id` ASC"); // извлечение процентов, сортировка их по ID в порядке возрастания
$ref_system->execute();
if($ref_system->rowCount()>0){ // проверка есть ли данные в предыдущем запросе
foreach($ref_system->fetchAll(PDO::FETCH_COLUMN) as $ref){
$percent[] = $ref;
}
$sum = floatval($sum);
$sum = round($sum, 2);
$referal = intval($referal);
//$i=0; // счетчик массива
foreach($percent as $lvl){
if($referal == 1){ // если ID пользователя 1, останавливаем цикл
break;
}
$ref_id = $this->pdo->prepare("SELECT `referer_id` FROM `db_users` WHERE `uid` = ?"); // извлечение ID реферера
$ref_id->execute([$referal]);
$referer = $ref_id->fetchColumn();
$sum_ref = round(($sum * $lvl/100),2); // сумма реферальных
$this->pdo->prepare("UPDATE `db_users` SET `balance_main` = `balance_main` + ? WHERE `uid` = ?")->execute([$sum_ref,$referer]);
$this->pdo->prepare("UPDATE `db_users_stats` SET `us_ref_fees` = `us_ref_fees` + ? WHERE `us_uid` = ?")->execute([$sum_ref,$referer]);
$this->pdo->prepare("UPDATE `db_users_stats` SET `us_ref_to` = `us_ref_to` + ? WHERE `us_uid` = ?")->execute([$sum_ref,$referal]);
$count = $this->pdo->prepare("SELECT COUNT(*) FROM `db_users_ref` WHERE `ur_from_user` = ? AND `ur_to_user` = ?");
$count->execute([$referal,$referer]);
if($count->fetchColumn() == 1){
$this->pdo->prepare("UPDATE `db_users_ref` SET `ur_money` = `ur_money` + ? WHERE `ur_from_user` = ? AND `ur_to_user` = ?")->execute([$sum_ref,$referal,$referer]);
}
if($count->fetchColumn() == 0){
$this->pdo->prepare("INSERT INTO `db_users_ref` (`ur_from_user`,`ur_to_user`,`ur_money`) VALUES (?,?,?)")->execute([$referal,$referer,$sum]);
}
$referal = intval($referer);//в переменную реферала записываем значение реферера для продолжения работы цикла
//$i++;// увеличение счетчика на 1
}
}
}
}
Проблема с запросом, который проверяет наличие этих данныхИ еще вопрос, мало ли кто знает... При проверке что на фк, что на фф в таблице с начислениями значения повторяются. На странице 2 раза по очереди запустил код и записи продублировались (разделил синей чертой), хотя по идее они должны были суммироваться, нет?
Посмотреть вложение 7221
Не подскажешь как исправить? Хотя если читать код, то вроде бы как верно, считается количество строк по значению, если 0, то вносит новую, если 1, то прибавляеиПроблема с запросом, который проверяет наличие этих данных
Как буду на месте посмотрюНе подскажешь как исправить? Хотя если читать код, то вроде бы как верно, считается количество строк по значению, если 0, то вносит новую, если 1, то прибавляеи
большое спасибоКак буду на месте посмотрю
это относится к этому модулю?Привет. Может кто подсказать как проще вывести количество рефералов про уровням, например 16-5-2 (3 уровня) и т.д.
В принципе да, там есть вывод рефералов по уровням во вкладке и их количество..это относится к этому модулю?
Если тебе нужна помощь, можешь смело писать pligin