За последние 24 часа нас посетил 18001 программист и 1591 робот. Сейчас ищут 1169 программистов ...

Как отделить 2го и 3го рефа у Дистрибьютора? PHP

Тема в разделе "PHP для новичков", создана пользователем azat12, 6 май 2011.

  1. azat12

    azat12 Активный пользователь

    С нами с:
    24 ноя 2009
    Сообщения:
    31
    Симпатии:
    0
    Человек (папа приглашает людей в проект (сыновей),Допустим под ним 1-й сын (реф) у него уже есть .Надо 2-3 го один раз отдать деду при регции сыновей
    Где ошибка или можно что сократить?
    1) вариант:
    PHP:
    1. $ts=mysql_query("SELECT * FROM users WHERE parent = (SELECT parent FROM users WHERE user= '$login') ORDER BY id ") ;
    2. $num = mysql_num_rows($ts);
    3. for ($i=1; $i <= $num; $i++){
    4. $row=mysql_fetch_array($ts, MYSQL_ASSOC);
    5. If ($row[‘user’]==$login && ($i==2||$i==3)) // надо отделить 2-3го рефа у Дистрибьютора (2-3го сына у папы)
    6. {
    7. Регистрируем под деда 2-3го рефа от папы по счету (дед –Дистрибьютор папы)
    8. } else {
    9. Регм под папу рефов по счету.1.4,5,6.
    10. }
    2) вариант :
    В базе таблица Юзера такая (сокращенно):
    Код (Text):
    1.  
    2. create table users(id int not null auto_increment, user (это новый реф-сын) varchar(20), pass varchar(25), email varchar(45), ……parent (папа,кто пригласилв проект,или назовем Дистрибььтор №1) varchar(20), parent2 (дед)varchar(20), parent3 (продед)varchar(20), primary key(id));");
    Мне надо чтоб при регистрации нового человека (рефа) сработало: Под папу рег-ся сыновья (рефы).Папа (Дитсриб 1) отдает сына деду (Дитсриб 2 ),если сын приходится у папы ПО СЧЕТУ только 2-3й. Но надо чтоб в базе эти 2-3 рефы были видны у папы и у деда (чтоб шел счет людей у папы и деда в базе),т.е. скажем папа заходит к себе в кабинет и видет 2-3го сына (которые ушли к деду) –красными. Дед заходит к себе в кабинет и видет, что от папы пришло халява (2-3-й сын) и встали на его 1-ю линию.
    Проблема у меня в том, что если даже сын ушел под деда, он также в таблице, должен просматриваться у папы (и у деда,как будто дед его нашел,но он не нашел.просто перешли от папы) ,как 2-3-й,просто чтоб шел счет людей у папы ( 1,2,3,4.5),чтоб все его люди не уходили деду,а только 2й и 3й один раз!! и все.
    Я предлагаю так:
    Добавим в базе в таблице users НОВУЮ колонку u23 char (1) (или bool Сравнение ставить :cp1251_general_ci , Null ставлю: Да, По умолчанию ставлю: NULL ) допустим после $datecod
    Мысли: Есть папа-Вася и деда-Коля
    у папы-Васи есть сын-Вова 1-й и которого (u23 = 0)
    вдруг (а может и не случайность папе-Васе "подфортило" и у него нарисовался еще один сын-Петя (он уже второй!)
    у нового сына-Пети изначально u23 тоже равно 0
    НО т.к. он второй по счету у папы-Васи - ему в "папы" записывают деда-Колю
    ПРИ ЭТОМ запись у папы-Васи о сыне-Пете все равно остается, только уже u23 = 1
    А у деда-Коли (теперь уже он новоиспеченный папа-Коля) появляется запись о сыне-Пете со значением u23 = 0
    ТО ЕСТЬ ФАКТИЧЕСКИ в базе данных две записи о сыне-Пете - у папы-Васи она со значением u23=1 и у папы-Коли (он же дед-Коля) со значением u23=0
    parent –папа , parent2 - дед
    // Добавим в базе в таблице users новую колонку u23 ( bool Сравнение ставить :cp1251_general_ci , Null ставлю: Да, По умолчанию ставлю: NULL ) допустим после $datecod.
    u23 ставлю в столбик после $datecod.
    //если новички-сыновья нормальные,т.е 1,4,5.6 то записываем в базу новичка после Дистриб 1 (папе) и пишем u23 ==0
    PHP:
    1. mysql_query("insert into users values (null, '$login1a','$passa','$emaila','$wmra','$jnda','$icq','$skype','$cot','$magent','0','[color=green]$paren[/color]t','$p2','$p3','0','0','$date','$date_active','$date15', 'норма','$client_ip','$datecod','[color=red]0[/color]','50','$encod');"); // записываем в базу
    2. if($row1['user'] != $login && $row2['user'] != $login ) : // если 2-3,то к деду регся
    3. mysql_query("insert into users values (null, '$login1a','$passa','$emaila','$wmra','$jnda','$icq','$skype','$cot','$magent','0','[color=green]$p2',[/color]'$p3','$p4','0','0','$date','$date_active','$date15', 'норма','$client_ip','$datecod','[color=red]0'[/color],'50','$encod');"); // и пишем u23 ==0
    4. //но и надо записать очередного сына под папу,чтоб у папы шел счет в базе,чтоб он бесконечно не передавал 2-3го сына деду
    5. mysql_query("insert into users values (null, '$login1a','$passa','$emaila','$wmra','$jnda','$icq','$skype','$cot','$magent','0','[color=green]$parent[/color]','$p2','$p3','0','0','$date','$date_active','$date15', 'норма','$client_ip','$datecod','[color=red]1[/color]','50','$encod');");
    Но как входить новичку в кабинет,через u23 ==0 ?
    Пример авторизации на сайте (добавлено это and u23 =0 ) :
    PHP:
    1. $sql=mysql_query("select pass, rang, status, ref, parent from users where user='$user' [color=brown]and u23 =[/color]0 limit 1");
    До этого была без u23 =0 ,т.е так:
    PHP:
    1.  $sql=mysql_query("select pass, rang, status, ref, parent from users where user='$user' limit 1");
    [/php][/code]
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    говнокодэ
    Тайна Обитаемого острова раскрыта!