Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 9
MySQL

Многоуровневая партнерская программа

15.10.2015, 19:29. Показов 5672. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Принцип работы

Пользователь А решил стать участником вашей партнерской программы - партнером и начинает распространять свою партнерскую ссылку в интернет. Все перешедшие по этой ссылке и зарегистрировавшиеся на вашем сайте пользователи автоматически становятся рефералами первого уровня пользователя А. Реферал В партнера А тоже решил учавствовать в партнерской программе и приглашает по своей партнерской ссылке пользователей на ваш сайт. Пользователь зарегистрировавшийся по партнерской ссылке партнера В становиться его рефералом С первого уровня и одновременно рефералом пользователя А второго уровня и так далее.

Кол-во уровней партнерской программы 8.

Я думал сделать две таблицы в БД:
users
--id
--nickname
--first_name
--last_name
referrals
--id
--referrer_id // владелец рефералов
--user_id
Но как дальше я не знаю.
Пожалуйста, помогите!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2015, 19:29
Ответы с готовыми решениями:

Партнёрская программа при использовании метода оплаты
есть страничка скажем http://сайт/лала.php?id1 с нее производится оплата человек проходит через страницу не видимую ему. Можно ли как то...

Партнёрская программа
Ребят, подскажите пожалуйста, есть ли где курсы, или материалы по-тому, как делать на сайте партнёрку?Она мне не нужна слишком сложная.....

Партнерская программа
Что если открыть партнерскую программу на сайте. Мол размещаетее ссылку на нас типа _http://ste.ru?id=x где x - номер партнера, естественно...

14
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
15.10.2015, 20:18
referrals:
SQL
1
user_id | referrer_id | level
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 9
15.10.2015, 20:20  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
referrals:
SQL
1
user_id | referrer_id | level
а как определить level
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
15.10.2015, 20:34
ridiks10, ну вы же знаете, что A привёл B, а B привёл C. Вот и записывайте:

SQL
1
2
3
1 | 2 | 1
1 | 3 | 2
2 | 3 | 1
юзер2 партнёр 1-го уровня для юзера 1
юзер3 партнёр 2-го уровня для юзера 1
юзер3 партнёр 1-го уровня для юзера 2
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 9
15.10.2015, 20:46  [ТС]
Я буду использовать реферальную ссылку при регистрации и по ней записывать в базу user_id referrer_id как мне знать какой уровень

любая_страница_сайта?ref=id_партнёра
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
15.10.2015, 21:00
ridiks10,
Цитата Сообщение от ridiks10 Посмотреть сообщение
Все перешедшие по этой ссылке и зарегистрировавшиеся на вашем сайте пользователи автоматически становятся рефералами первого уровня
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 9
15.10.2015, 21:20  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
ridiks10,
Извенит меня но я чота не могу понять а ка же мне определить второй и третий уровни пользователя исли можно то sql кодом буду очень признателен Вам
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
16.10.2015, 08:21
Лучший ответ Сообщение было отмечено ridiks10 как решение

Решение

А, понял вас.

Смотрите, допустим, есть user1. И есть user2, который зарегистрировался как реферал для user1. И нам нужно добавить взаимосвязь с теми юзерами, для которых user1 является рефералом. Получаем их:
SQL
1
SELECT * FROM `referrals` WHERE `referrer_id` = "$user1"
И добавляем к ним реферала user2, но с уровнем +1 по сравнению с user1, поскольку он для них на уровень выше.
PHP
1
2
3
4
5
$id_user2 = 825; // id нового юзера
while($user = mysql_fetch_assoc($users)){
    $level = $users['level'] + 1;
    mysql_query("INSERT INTO `referrals` VALUES ('" . $users['id'] . ', '$id_user2', '$level')");
}
Добавлено через 14 минут
Ну и, конечно, добавляем взаимосвязь user2 с user1 1-го уровня.
1
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 9
16.10.2015, 08:25  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
Ну и, конечно, добавляем взаимосвязь user2 с user1 1-го уровня.
А как?
Как-то в базе?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
16.10.2015, 08:35
ridiks10, да также:
PHP
1
mysql_query("INSERT INTO `referrals` VALUES ('$user1'. ', '$user2', 1)");
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 9
17.10.2015, 12:46  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$this->id_referral = 1;
$this->id_user = 4;
        
$insert = $this->db->query("INSERT INTO referrals (id_user, id_referrer) VALUES(:id_user, :id_referrer)", array(
    "id_user" => $this->id_user,
    "id_referrer" => $this->id_referral
));
 
$referrals = $this->db->query("SELECT * FROM referrals WHERE id_referrer = :id_referrer", array(
    "id_referrer" => $this->id_referral
));
 
 
foreach ($referrals as $key => $value) {
    $this->db->query("INSERT INTO referrals (id_user, id_referrer,level) VALUES(:id_user, :id_referrer,:level)", array(
        "id_user" => $this->id_user,
        "id_referrer" => $value['id_referrer'],
        "level" => $value['level'] + 1,
    ));
}
Не работает как мне нужна мне нужна нескольео уровней вложаности например:
$this->id_referral = 1;
$this->id_user = 2;
level = 1

если:
$this->id_referral = 1;
$this->id_user = 3;
level = 1

и если:
$this->id_referral = 2;
$this->id_user = 4;
lavel = 2


а потом если:
$this->id_referral = 4;
$this->id_user = 1;
lavel = 2

вот нагдядний пример http://letsinvest.ru/wp-conten... gramma.png
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
17.10.2015, 13:36
Цитата Сообщение от ridiks10 Посмотреть сообщение
Не работает как мне нужна
А как работает?
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 9
17.10.2015, 13:53  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
А как работает?
ето исли:
PHP
1
2
$this->id_referral = 1;
$this->id_user = 2;


а если
$this->id_referral = 1;
$this->id_user = 3;
то
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
17.10.2015, 16:41
ridiks10, на 4 строке добавляется юзер и его реферер. На 9-ой строке он же выбирается и на 15-ой записывается снова. Насколько я понял, информация дублируется.

Нужно запрос на 4-ой строке перенести в конец кода.
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 9
18.10.2015, 15:33  [ТС]
Я вот поразмышлял и понял что я неправильно написал.
Извените но мне нужна имено так.
Хочу реализовать партнерскую программу на сайте в восемь уровней вложенности но не знаю как можно такое реализовать с помощью php и MySQL. Принцип работы такой: если пользователь A привел пользователя B то А становится его рефералом и его уровень 1, а если пользователь B привел пользователя С то B становится его рефералом и его уровень 2 для пользователя А и 1 для пользователя Б, но если А приведет D то А становится его рефералом и его уровень 1 и так до восьмого уровня вложенности пользователей. Надеюсь суть поняли.

Но потом мне нужна ка-кто их выводить из БД и для каждого пользователя отображать их уровент вложенности на пример:

если пользователь А то:
B - 1 уровень
D - 1 уровень
С - 2 уровень

а если пользователь B то:
C - 1 уровень

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.10.2015, 15:33
Помогаю со студенческими работами здесь

Партнерская программа Altastat
Мы рады сообщить о запуске партнерской программы Altastat, являющейся результатом совместной работы компаний Altastat и Webalta и...

у Яндекса партнерская программа?
увидел на сайте http://ny.travel.ru/russia/ справа ссылки с директа, прям как у Гугла. Но не нашел на директе нигде упоминание...

Партнерская программа магазина на OpenCart
Установил OpenCart, версию 1.5.5.1.2 в самом шаблоне после установки есть партнерская программа для пользователей А у версии 2.1.0.2.1 я...

Партнерская программа и баннер с реферальной ссылкой
Здравствуйте. У меня такой вопрос: Как сделать так, чтобы автоматом генерировался код баннера с реферальной ссылкой? У меня стоит модуль...

Сапа - партнерская программа на самого себя
Можно ли так сделать? 1) регистрирую в сапе сайт. 2) по партнерской ссылке регистрирую второй сайт на другой логин 3) получаю по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru