在laravel php中注册新用户时更新多个用户详细信息
下面是在php laravel-5.4 mysql中注册新用户代码 当一个新用户注册时,他在注册表格中输入参考代码。 我希望当一个新用户在手机上注册时->'123'和参考号'987',然后 步骤1)找到新注册用户的“参考号”,然后在所有注册用户的“移动”字段中搜索“参考号”,然后在其收入中添加50%的$200(货币),在数据库字段name=“user\u under”中添加以前的用户名 步骤2)找到以前用户的“参考号”,然后在所有注册用户的“移动”字段中搜索“参考号”,然后在其收入中添加30%的$200(货币),在数据库字段name=“user\u under”中添加以前用户的姓名 步骤3)找到以前用户的“参考号”,然后在所有注册用户的“移动”字段中搜索“参考号”,然后在其收入中添加$200(货币)的10%,并在数据库字段name=“user\u under”中添加以前用户的姓名 步骤4)找到以前用户的“参考号”,然后在所有注册用户的“移动”字段中搜索“参考号”,然后在数据库字段name=“user\u under”中添加以前用户的姓名 ******第4步继续,直到参考号=空/无值 我不明白如何运用这个逻辑 #####编辑 @杰弗里 下面是第五级的手动代码,需要在递归时使用它来实现自动化在laravel php中注册新用户时更新多个用户详细信息,php,mysql,laravel,Php,Mysql,Laravel,下面是在php laravel-5.4 mysql中注册新用户代码 当一个新用户注册时,他在注册表格中输入参考代码。 我希望当一个新用户在手机上注册时->'123'和参考号'987',然后 步骤1)找到新注册用户的“参考号”,然后在所有注册用户的“移动”字段中搜索“参考号”,然后在其收入中添加50%的$200(货币),在数据库字段name=“user\u under”中添加以前的用户名 步骤2)找到以前用户的“参考号”,然后在所有注册用户的“移动”字段中搜索“参考号”,然后在其收入中添加30%
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;
}
我不完全理解这个问题,但我要试一试
Recursive
是这里的关键词。你似乎想爬上参考树,根据你的级别,给那个人增加一定数量的美元。但是,我不明白您在数据库字段name=“user\u 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数组比数据库中的树短,它不会中断并停止给钱。当然,您可以扩展阵列
我希望这是您提出的问题,否则请留下评论。在阅读您的问题并查看您的屏幕截图描述后,我感到困惑。@ventiseis在屏幕截图中,我刚刚解释了it数据库将如何更新。请参阅自下而上//循环获取新注册用户的参考id->查找推荐人->更新(1)//查找最后一个参考id(即1)->查找推荐人->更新(2)//查找推荐id(2)->查找推荐人->更新(3)//查找推荐id(3)->查找推荐人->更新//查找推荐id->查找推荐人->更新//无参考时,无循环结束//计数结束时停止;我不完全理解这个问题
$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;
}