php递归函数(php mysql 高难度循环问题,解决追加100分

<?php

php递归函数(php  mysql 高难度循环问题,解决追加100分

//CONFIG 设置

php递归函数(php  mysql 高难度循环问题,解决追加100分

//提成率MAPphp递归函数,级别 => 提成率

//第一级提成100,第二级别提成100*0.2,....

$ratiomap = array (

1 => 1,

2 => 0.2,

3 => 0.1

);

//最大分成级别

//最多提成3级

$maxlevel = 3;

//FUNCTIONS 函数

//递归提成

function give_levelmoney($id, $level=1) {

global $ratiomap, $maxlevel;

if ($level > $maxlevel) {

//如果目标级别已经超过最大级别,就退出递归

return;

}

//读取$id的信息

$info = get_levelinfo($id);

//取得目标级别的提成率

$ratio = $ratiomap[$level];

//计算提成的金额

$addmoney = $info[\'jine\'] * $ratio;

//给用户提成

add_money($id, $addmoney);

//增加级别

$level++;

//递归调用,处理推荐人的提成

give_levelmoney($info[\'tuijian\'], $level);

}

//获取$id对应的数据

function get_levelinfo($id) {

//这里要从DB中查询出相应id的数据

//需要你实现

return array (

\'id\' => $id,

\'tuijian\' => $tuijianid, //推荐人ID

\'jine\' => $jine //金额

);

}

//为$id用户加钱

function add_money($id, $addmoney) {

//这里要写DB,给ID为$id用户加钱$addmoney

//需要你实现

}

//TESTS 调用方法

//$id = \'05\';

//give_levelmoney($id);

?>

请先把DB的功能实现补全,然后按照我的方法,调用:

$id = \'05\';

give_levelmoney($id);

这样程序先会给 05 加 100 * 1 的钱,然后找到他的推荐人 02,给 02 加 100 * 0.2 的钱 ....

一直做完 04 后,超过最大级别,退出函数

// GET ALL THE IDS THAT TUIJIAN IS EMPTY$sql = \" SELECT `id`,`tuijian`,`jine` FROM `数据库表` \";$result = mysql_query($sql);while ($row = mysql_fetch_array($result)){ // all people has tuijian account // Add 20 points account if(!empty($row[`tuijian`])) $addTwityPointsAccount[] = $row[\'tuijian\']; // all people account $allRecords[] = $row;}// add 10 point accountforeach($allRecords AS $key => $value){ if(in_array($value[\'id\'],$addTwityPointsAccount)) $addTenPointsAccount[] = $value[\'id\'];}// do the add points sql$sql = \"UPDATE `数据库表`SET `jine` = `jine` + 20WHERE `id` IN (\". JOIN(\',\',$addTwityPointsAccount) .\")\";mysql_query($sql);$sql = \"UPDATE `数据库表`SET `jine` = `jine` + 10WHERE `id` IN (\". JOIN(\',\',$addTenPointsAccount) .\")\";mysql_query($sql);