php mysql 高难度循环问题,解决追加100分

来源:百度知道 编辑:UC知道 时间:2024/05/15 19:41:49
数据库表:

id 推荐人(tuijian) 金额(jine)
01 04 100
02 04 100
03 100
04 03 100
05 02 100

例子:
1 .会员 05 加入金额 100元
2. 读出会员05 的推荐人02,然后金额加20.
3. 读出会员02 的推荐人04,然后金额加10.
函数结束!
一楼的大师回答的我还没有放到程序里检测,但是我觉得有点欠妥,开始数据量少的时候可以全部检索出来,但是后来如果数据量越来越大,当会员达到十几万以后,运行会不会很慢,谢谢,有没有更简短的函数,谢谢

只更新上两代吗?

只更新两代是很容易的,推荐人增加20%金额,推荐人的推荐人增加10%金额,用下面的语句(假设表名叫tab,你使用的时候换为你的表名):
$id='05';
$jine=100;
//加本人
mysql_query("update tab set jine=jine+$jine where id='$id'");
//加父亲
mysql_query("update tab set jine=jine+$jine*0.2 where id in (select tuijian from tab where id='$id')");
//加爷爷
mysql_query("update tab set jine=jine+$jine*0.1 where id in (select tuijian from tab where id in (select tuijian from tab where id='$id'))");

如果要无限更新所有的推荐人,那需要循环,但是你没有给出相关的比例,所以代码就不写了,可能你不是那个意思。

// 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[