2017-08-31 68 views
0

這裏是在PHP註冊新用戶代碼laravel-5.4的MySQL更新多個用戶的信息,當新用戶在laravel PHP是註冊

enter image description here

public function store(Request $request) 
{ 

    $epincheck = $request->epin; 

    if (Epin::where('epin', '=', '75656565')->exists()) { 

     // DB::table('epins')->where('epin', $epincheck)->delete(); 
     $post = new Admin(); 
     $post->name = $request->name; 
     $post->email = $request->email; 
     $post->plan = $request->plan; 
     $post->epin = $epincheck; 
     $post->ref = $request->ref; 
     $post->mobile = $request->mobile; 
     $post->password = bcrypt($request->password); 
     $post->save(); 

     //other trims 
     $referal_user = $request->ref; 
     $referal_email = DB::table('admins')->where('mobile', $referal_user)->first(); 
     $referal_id = $referal_email->id; 

     $update_ref_user = Admin::find($referal_id); 
     $previous_users_left = $referal_email->user_left; 
     $previous_users_right = $referal_email->user_right; 
     $direct_referal = $referal_email->direct_referal; 
     $list_all_right_user = $referal_email->user_listing_right; 
     $list_all_left_user = $referal_email->user_listing_left; 
     $left_count = $referal_email->no_user_left; 
     $right_count = $referal_email->no_user_right; 
     $direct_count = $referal_email->no_direct_referal; 

     if(!$previous_users_right && $previous_users_left) 
     { 
      $update_ref_user->user_right = $request->email ; 
      $update_ref_user->no_user_right = $right_count+1 ; 
      $update_ref_user->user_listing_right = $request->email . ' , ' . $list_all_right_user ; 
      $update_ref_user->save(); 

      $last_updated_id = $update_ref_user->id; 
      $update_up_line = DB::table('admins')->where('id', $last_updated_id); 
      $update_up_line_list = $update_up_line->id; 

      // $update_up_line = Admin::find($last_updated_id); 

      /* $update_up_line_update->user_listing_right = $request->email; 
      $update_up_line-> save();*/ 

      //looping get referal id -> find referee -> update ; 
      //find last referal id -> find referee -> update ; 
      //find referal id -> find referee -> update ; 
      //find referal id -> find referee -> update ; 
      //find referal id -> find referee -> update ; 
      //when there is no ref_no loop ends 
      //stop when count ends; 
     } 

     if(!$previous_users_left) 
     { 
      $update_ref_user->user_left = $request->email ; 
      $update_ref_user->no_user_left = $left_count + 1 ; 
      $update_ref_user->user_listing_left = $request->email . ' , ' . $list_all_left_user ; 

      $update_ref_user->save(); 

     } 
     if($previous_users_left && $previous_users_right) 
     { 
      $update_ref_user->direct_referal = $direct_referal . ' , ' . $request->email ; 
      $update_ref_user->no_direct_referal = $direct_count +1 ; 

      $update_ref_user->save(); 

     } 
     //sms gatewat 
     /*Send SMS using PHP*/ 

     return redirect('/admin/login'); 
     // \Session::flash('msg', 'Changes Saved.'); 

    } 

    else { 
     echo "You Have Entered Invalid Pin"; 
    } 
} 

當新的用戶被註冊,他輸入在基準碼註冊表單。 我想的是,當一個新的用戶與移動註冊 - >「123」和附圖標記「987」,則 步驟1)找到新註冊的用戶的「參考號」再搜索「的參考號」,在所有的「移動」字段註冊用戶再加入200 $ 50%(這是貨幣),以他的收入在數據庫中的字段名=「user_under」

第2步中添加以前的用戶名)找到以前的用戶的「參考編號」,然後搜索「參考號」在所有註冊用戶的「移動」字段中,然後將200美元(這是貨幣)的30%添加到他的收入中在數據庫字段中添加上一個用戶的名稱字段名稱=「user_under」

步驟3)找到之前的「參考編號」然後用戶在所有註冊用戶的「移動」字段中搜索「參考號」在數據庫字段中添加以前用戶的名稱=「user_under」

步驟4)找到前一個用戶的「參考號碼」,然後搜索「參考號碼」移動user_under‘

******第4步持續到參考號=空/無值」的所有註冊用戶的領域,然後在數據庫中的字段名=添加以前的用戶名’

我無法理解應用邏輯

#####編輯

@jeffrey

這裏是5級手動代碼需要使用遞歸的同時

public function store(Request $request) 
{ 

    $post = new Admin(); 
     $post->name = 'nill'; 
     $post->email = $request->email; 
     $post->plan = 'uuiuii'; 
     $post->epin = '9999'; 
     $post->ref = $request->ref; 
     $post->mobile = $request->mobile; 
     $post->password = bcrypt($request->password); 
     $post->save(); 


    $referal_user = $request->ref; 
    $referal_email = DB::table('admins')->where('mobile', $referal_user)->first(); 
    $referal_id = $referal_email->id; 
    $right_count = $referal_email->no_user_right; 
    $list_all_right_user = $referal_email->user_listing_right; 

    //first update 


     $update_ref_user = Admin::find($referal_id); 
    $get_user_previous = $referal_email->user_listing_right; 
     $update_ref_user->user_right = $request->email; 
     $update_ref_user->no_user_right = $right_count + 1; 
     $update_ref_user->user_listing_right = $request->email . ' , ' . $get_user_previous; 
     $update_ref_user->save(); 
     $last_updated_id = $update_ref_user->ref; 

    ///next 
    /// 
    // echo $last_updated_id; 

    $ref_previous2 = $last_updated_id; 
    if($ref_previous2) { 
     $referal_email2 = DB::table('admins')->where('mobile', $last_updated_id)->first(); 
     $get_user_previous2 = $referal_email2->user_listing_right; 
     $update_ref_user_id_2 = $referal_email2->id; 
     $update_ref_user2 = Admin::find($update_ref_user_id_2); 
     $update_ref_user2->user_right = 'jhkkkj'; 
     $update_ref_user2->no_user_right = $right_count + 1; 
     $update_ref_user2->user_listing_right = $request->email . ' , ' . $get_user_previous2; 
     $update_ref_user2->save(); 

     $ref_previous3 = $update_ref_user2->ref; 
     if($ref_previous3) { 
      $last_updated_id3 = $update_ref_user2->ref; 
      $referal_email3 = DB::table('admins')->where('mobile', $last_updated_id3)->first(); 
      $get_user_previous3 = $referal_email3->user_listing_right; 
      $update_ref_user_id_3 = $referal_email3->id; 
      $update_ref_user3 = Admin::find($update_ref_user_id_3); 
      $update_ref_user3->user_right = 'jhkkkj'; 
      $update_ref_user3->no_user_right = $right_count + 1; 
      $update_ref_user3->user_listing_right = $request->email . ' , ' . $get_user_previous3; 
      $update_ref_user3->save(); 



      $ref_previous4 = $update_ref_user3->ref; 
      if($ref_previous4) { 

       $last_updated_id4 = $update_ref_user3->ref; 
       $referal_email4 = DB::table('admins')->where('mobile', $last_updated_id4)->first(); 
       $get_user_previous4 = $referal_email4->user_listing_right; 
       $update_ref_user_id_4 = $referal_email4->id; 
       $update_ref_user4 = Admin::find($update_ref_user_id_4); 
       $update_ref_user4->user_right = 'jhkkkj'; 
       $update_ref_user4->no_user_right = $right_count + 1; 
       $update_ref_user4->user_listing_right = $request->email . ' , ' . $get_user_previous4; 
       $update_ref_user4->save(); 



       $ref_previous5 = $update_ref_user4->ref; 
       if($ref_previous5) { 
        $last_updated_id5 = $update_ref_user4->ref; 
        $referal_email5 = DB::table('admins')->where('mobile', $last_updated_id5)->first(); 
        $get_user_previous5 = $referal_email5->user_listing_right; 
        $update_ref_user_id_5 = $referal_email4->id; 
        $update_ref_user5 = Admin::find($update_ref_user_id_5); 
        $update_ref_user5->user_right = 'jhkkkj'; 
        $update_ref_user5->no_user_right = $right_count + 1; 
        $update_ref_user5->user_listing_right = $request->email . ' , ' . $get_user_previous5; 
        $update_ref_user5->save(); 

       } 
      } 
     } 
    } 
    //next 




    //4th update 



    ///five 
    /// 
    /// 





    return redirect('/admin/register2'); 

    } 
將其自動化#############這裏是
$referal_user = $request->ref; 
    $referal_email = DB::table('admins')->where('mobile', $referal_user)->first(); 
    $referal_id = $referal_email->id; 
    $right_count = $referal_email->no_user_right; 
    $list_all_right_user = $referal_email->user_listing_right; 
    $ref = $request->ref; 
    $mobile = $request->mobile; 
    $user_listing_left = $referal_email->user_listing_left; 
    while($refUser = Admin::where('mobile', $ref)->first()) 
    { 
     $refUser->user_left = $request->email; 
     $refUser->user_listing_left = $refUser->user_listing_left . "," .$request->email; 
     $refUser->save(); 

     // Update $ref to find the next guy 
     $ref = $refUser->ref; 

    } 
+1

看完你的問題後,看着你的截圖描述,我感到困惑。 – ventiseis

+0

@ventiseis在屏幕截圖我剛剛解釋了它的數據庫將如何update.see從下。 //循環獲取新註冊用戶的referal id - >找到裁判 - > update(1); //找到最後的referal id(i。e 1) - >找到裁判 - >更新(2); //找到referal id(2) - >找到裁判 - > update(3); //找到referal id(3) - >找到裁判 - >更新; //找到referal id - >找到裁判 - >更新; //當沒有ref_no循環結束時 //計數結束時停止; –

+0

我完全不明白這個問題 –

回答

1

我不解決方案我完全理解這個問題,但我會試試看。

Recursive這裏是關鍵詞。您似乎想要參考參考樹,並根據您的級別,向該人添加一定數量的$。我不過不明白你意思數據庫中的字段名前面加上用戶名=「user_under」領域是不可見的,以及...

$percentages = [50, 30, 10, 5, 2, 1, 0.5]; 
$iteration = 0; 
$ref = $request->ref; 
while($refUser = Admin::where('ref', $ref)->first() && $percentages[$iteration]) 
{ 
    $refUser->income += floor(200 * $percentages[$iteration++]); 
    $refUser->save(); 

    // Update $ref to find the next guy 
    $ref = $refUser->ref; 
} 

while循環的第二個條件,是要確保如果$ percentages數組比數據庫中的樹短,它不會中斷並退出給錢。你當然可以擴大陣列。

我希望這是你問的,否則發表評論。

+0

請參閱 –

+0

的編輯部分謝謝@Jeffrey它的工作我已經改變littlebit –