下面是在php laravel-5.4 mysql中注册新的用户代码

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步)找到新注册用户的“参考号码”,然后在所有注册用户的“移动”字段中搜索“参考号码”,然后在他的收入中添加50%的$200(它是货币),然后在数据库字段name="user_under“中添加以前的用户名。
步骤2)查找前一用户的“参考号码”,然后在所有注册用户的“移动”字段中搜索“参考号码”,然后在收入中添加$200(是货币)的30%,在数据库字段name="user_under“中添加前用户的名称。
步骤3)查找前一用户的“参考号码”,然后在所有注册用户的“移动”字段中搜索“参考号码”,然后在其收入中添加$200(它是货币)的10%,并在数据库字段name="user_under“中添加前用户的名称。
步骤4)查找前一个用户的“参考号”,然后在所有注册用户的“移动”字段中搜索“参考号”,然后在数据库字段name="user_under“中添加前一个用户的名称
*步骤4继续到引用number=空/无值为止
我不知道如何应用逻辑。
#####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');
}#############here是解决方案
$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;
}发布于 2017-08-31 23:04:35
我不完全理解这个问题,但我试试看。
Recursive是这里的关键词。你似乎想要爬上参考树,根据你的水平,给那个人添加一定数量的$。但是,我不明白在数据库字段name="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数组比数据库中的树更短,它不会中断并退出给钱。当然,您可以扩展数组。
我希望这是你的要求,否则留下评论。
https://stackoverflow.com/questions/45988276
复制相似问题