2017-08-31 11 views
0

に登録されている場合、新しいユーザーが登録されている場合の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"; 
    } 
} 

は、彼が参照コードを入力するPHP laravel-5.4に新しいユーザーコードを登録していますサインフォーム。 新しいユーザーがモバイル - > '123'と参照番号 '987'に登録されてから の手順1)新しい登録ユーザーの「参照番号」を見つけて、すべての「モバイル」フィールドで「参照番号」を検索したい登録されたユーザーは、その所得に$ 200の50%(通貨)を追加します。データベースフィールドに前のユーザーの名前を追加します。name = "user_under"

手順2)前のユーザーの "参照番号"すべての登録ユーザーの "モバイル"フィールドに入力し、収益に$ 200の30%を追加する(通貨)データベースフィールドに以前のユーザーの名前を追加する

ステップ3)前の "参照番号"ユーザは、次に、登録されたすべてのユーザの「モバイル」フィールド内の「参照番号」を検索する彼の収入に$ 200の10%を追加し、データベースフィールドname = "user_under"に前のユーザーの名前を追加してください

手順4)前のユーザーの "参照番号"を見つけて "モバイル

私はどのように理解することはできませんuser_under 『

は******ステップ4は、参照番号=ヌルまで続く/いいえ値」すべての登録済みのユーザーのフィールドは、データベースのフィールド名=の前のユーザーの名前を追加します』ロジックを適用する

##### edit

@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 in screenshot私はちょうどデータベースが更新される方法を説明しました。 //ルーピングは新しい登録ユーザの照会IDを取得します - >審判を探す - >更新(1); //最後の参照IDを見つけます(i。e 1) - >審判を探す - >更新(2); //照会IDを見つける(2) - >審判を探す - >更新(3); //照会IDを見つける(3) - >審判を探す - >更新; //照会IDを見つける - >審判を探す - >更新; // ref_noループがない場合 //カウントが終了すると停止します。 –

+0

私は完全に質問を理解していません –

答えて

1

ソリューションです質問を完全に理解することはできませんが、私はそれを撃つでしょう。

Recursiveはここでキーワードです。あなたは参照のツリーを上りたいと思っていて、あなたのレベルに応じて、その人に一定量の$を追加します。私は、しかし、あなたは、データベースのフィールド名の前のユーザー名を追加によって何を意味するのか理解していない=「user_underは」フィールドには、whileループのための

$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; 
} 

第2の条件は、ある...なども表示されません$パーセンテージの配列がデータベースのツリーよりも短くなっていれば、それが壊れずにお金を与えなくなることを確認する必要があります。もちろん、配列を拡張することができます。

私はこれが頼まれたことを望みます。そうでない場合はコメントを残してください。

+0

質問の編集部分を参照してください –

+0

ありがとう@ジェフリー私は変更littlebit –

関連する問題