Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как обозначит ТОЛЬКО 2 и 3 человека (рефа) ?


Автор: rublik2009 18.12.2010, 22:09
Допустим под участником Коля регся люди снизу 1 (2, 3) 4,5, 6,.. на 1-ю линию (не пирамида). И так под каждый человеком (уже Дистрибьютором)тоже регся люди на 1-ю линию (назовем Солнышко)
Надо как то в таблице USERS выделить (как то обозначит)этих людей: 2-го и 3-го.Наверно по ID не получится,т.к.. это же происходит со всеми,кто рег-т людей -Под каждым участником,надо как то отделить 2-го и 3-го человека и чтоб они платили не тому кто пригласил,а еще выше,2-му Дистрибьютору.Но не забываем,что не нужно следить за нумерацией в случае удаления кого либо и тому подобных сложностей с формированием текущего значения счетчика .Помогите решить.
Код

case 0: //новичек 
    $cash=$ri['1z']; // это кошельки Вебмани Рублевый 
    $cashru=$ri['1r']; // кошелек Долларовый     
    $ts1=mysql_query("select ref from users where user='$parent' limit 1");// здесь что то не верно,надо подобрать только рефов 2 и 3 у Парента 
    $rs1=mysql_fetch_array($ts1); 
    $acti1=$rs1['ref']; 
    if ($acti1=='2' or $acti1=='3' ): // если реф под порядку 2 и 3 ,не трогаем рефов 1,4,5.6…… 
    $sa=$parent2; // переход оплаты на 2-го Дистрибьютора 
    $rp=$parent; 
    else: 
    $sa=$parent; // иначе оплата 1-му Дистрибьютору,тут платят рефы под номерами 1,4,5.6,... 
    endif; 
break; 

Рег-ция Рефа проходит так:
Код

mysql_query("insert into users values (null, '$login1a','$passa','$emaila','$wmra','$jnda','$icq','$skype','$cot','$magent','0','$parent','$parent2','0','0','$date','$date_active', 'норма','$client_ip','$datecod','0','50','$encod');");

Тут parent - тот,кто его пригласил (Будущий 1-й Дистрибьютор)
50 - поставил сам,как бы может набрать на 1-ю линию 50 человек
Вот код с файла install.php
Код

mysql_query("create table users(id int not null auto_increment, user varchar(20), pass varchar(25), email varchar(45),  wmr varchar(13), jnd char(15), icq varchar(15), skype varchar(30), cot varchar(20), magent varchar(45),  rang char(1), parent varchar(20), parent2 varchar(20), vsego mediumint (9), inogda smallint (6), date date, date_active date, status varchar(25), ip varchar(30), datecod int(15), u char(1), ref char(1), encod char(3), primary key(id));");

Может тут ref char(1) что то надо изменить,скажем тип на DATETIME или TIMESTAMP? Помогите плиз

Автор: Guedda 18.12.2010, 22:28
Если бы Вы сформулировали вопрос правильно, сами бы нашли ответ на вопрос. Совершенно ничего не понятно. Переформулируйте, пожалуйста.

Автор: rublik2009 18.12.2010, 22:36
Цитата(Guedda @ 18.12.2010,  22:28)
Если бы Вы сформулировали вопрос правильно, сами бы нашли ответ на вопрос. Совершенно ничего не понятно. Переформулируйте, пожалуйста.

Каждый человек (пусть он будет Дистрибьютор № 1 или parent) ищет под себя людей и они рег-ся под него: 1,2,3,4,5,6. Сам Дистрибьютор № 1  тоже зарегн ранее под Дистрибьютор № 2 (или parent2). Мне надо выбрать из базы людей (рефов) под каждым Дистрибьютор № 1 ТОЛЬКО 2-го и з-го по счету реферала и чтоб только ти 2 рефа,произвели оплату не Дистрибьютор № 1,а платили Дистрибьютор № 2. ,но оставались все равно под Дистрибьютор № 1в таблице USERS. Я не могу их выбрать из базы? по ID -уникальный номер не получится думаю. Реф заходит по ЛОГИНУ и Паролю к себе в кабинет и нажимает Оплатить место.Если он ,у того кто его пригласил (его Дистрибьютор) находится по порядку 2-м или 3-м рефом,то он не платит совему 1-му Дистрибьютору,а происходит переход оплаты выше,т.е. Дистрибьютору № 2 (минуя Дистрибьютору № 1). А люди под Дистрибьютору № 1 это 1,4,5,6,7.8,  платят  в норме Дистрибьютору № 1 без никаких изменений

Автор: ayax2005 18.12.2010, 22:51
ох уж этот сленг сетевого маркетингаsmile
Не проще помечать юзеров каким-то флагом, если они 2, 3 или 10 или "жёлтый"?
А ещё лучше вывести эти флаги в отдельную связанную таблицу и фильтровать при выборке?

Автор: rublik2009 18.12.2010, 23:09
Цитата(ayax2005 @ 18.12.2010,  22:51)

Не проще помечать юзеров каким-то флагом, если они 2, 3 или 10 или "жёлтый"?
А ещё лучше вывести эти флаги в отдельную связанную таблицу и фильтровать при выборке?

Ну люди добрые помогите,очень надо,дайте примеры скриптов ваших хоть,ваши примеры таблиц

Автор: Muerto 18.12.2010, 23:49
rublik2009, Найдите скрипт млм, или букса  smile 

Автор: rublik2009 18.12.2010, 23:50
Цитата(Muerto @ 18.12.2010,  23:49)
rublik2009, Найдите скрипт млм, или букса  smile

Такие есть скрипты,но там нет что я хочу выше

Автор: rublik2009 19.12.2010, 20:32
Ну кто поможет разобраться? выложите примеры похожих ваших скриптов

Автор: Severyanin 20.12.2010, 17:25
Смотрите в сторону деревьев поиска, если нужна вся иерархия. Например, исходники doctrine ORM. Там есть то, что Вам нужно

Автор: rublik2009 20.12.2010, 21:09
Цитата(Severyanin @ 20.12.2010,  17:25)
Смотрите в сторону деревьев поиска, если нужна вся иерархия. Например, исходники doctrine ORM. Там есть то, что Вам нужно

дайте ссылку на doctrine ORM,где почитать,а скрипты есть?

Автор: mimik 21.12.2010, 00:25
Цитата(rublik2009 @  20.12.2010,  21:09 Найти цитируемый пост)
дайте ссылку на doctrine ORM,где почитать,а скрипты есть?

а мозги есть?

дашь ссылку на букс, надо будет хакнуть к новому году  smile 

Автор: Severyanin 21.12.2010, 07:00
rublik2009, http://www.doctrine-project.org/

http://www.doctrine-project.org/docs/orm/2.0/en/reference/association-mapping.html Разберись с тем, что написано, потом смотри исходники, как это реализовано. Исходники можно скачать на главной странице

Автор: rublik2009 21.12.2010, 16:04
Цитата(Severyanin @ 21.12.2010,  07:00)
http://www.doctrine-project.org/docs/orm/2.0/en/reference/association-mapping.html Разберись с тем, что написано, потом смотри исходники, как это реализовано. Исходники можно скачать на главной странице

Английский язык не знаю
Дополнение:
по ID=1  мне надо выбрать ID=2 и D=3 ,т.е между 1кой и 4-кой,как бы ID>1 ID<4,но по ID Думаю не получиться,т.е это некоторые люди удаляются, и может отстаться только люди скажем ID=1 и ID=5 ID=6 и D=7
User зарегн под parent, parent зарегн под parent2. Parent – это Дистрибьютор

Автор: rublik2009 23.12.2010, 17:14
Вот это не пойдет ли? 
Код

SELECT * FROM users WHERE parent='$parent' AND parent2='$parent2' LIMIT 1,2

1 - это смещение в результате
2 - кол-во строк
$parent = имя Дистрибьютора-1
$parent2 = имя Дистрибьютора-2
Да,еще объясните в чем разница  LIMIT 1,2  и  LIMIT 2  ?


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)