自己循环一下应该可以吧?
要是一条sql语句就能搞定的话,我也想学
要是一条sql语句就能搞定的话,我也想学
解决方案 »
- prepare中使用输出变量执行时报未定义错误
- 使用命令将文本文件“*.txt”装载到数据库表中的问题
- 在windows下如何用批处理创建数据库
- postgresql数据库之间如何连接?如何传递数据?
- 一个关于用MySql API的问题
- 【高分求教】mysql出现overhead
- sql 高手請進 : 整數為o為什麼不顯示?
- Ubuntu系统mysql服务器开机启动
- 想要在一条查询语句中加入一个固定的值作为一列,求问大神们该怎么做
- mac mysql Access denied for user 'root'@'localhost' (using password: YES)
- mysql的odbc设置后为什么不能连接到远程主机呢?
- 如何在mysql中存储文件和图片啊?
变量 会员名称 uname="e";
变量 介绍会员名称 nextname="";
变量 计算积分 tmp;
query1 = "UPDATE tbl_name SET 最终积分=最终积分+tmp WHERE 会员名称=uname";
query2 = "SELECT 介绍会员 FROM tbl_name WHERE 会员名称=uname"//为其它人计算积分
while(1)
{
mysql_query(query2); //得到介绍会员,赋值给nextname if (nextname == null && uname == "e") //e为一级会员
{
tmp = x;
}
else if (nextname != null && uname == "e")
{
tmp = x*0.8;
}
else if (nextname != null)
{
tmp = 0.2*tmp;
}
else
{
tmp = 0.2*tmp/0.8;
} mysql_query(query1);
if (nextname == null)
break; uname = nextname;
}
计算办法:假如第5级的某一会员e得到100积分,
那么他自己得100*0.8, //本人80%
介绍他入会的d得0.2*100*0.8, //以后每人都得到当前剩余点数的80%
c得0.2*0.2*100*0.8, //
b得0.2*0.2*0.2*100*0.8,
a得0.2*0.2*0.2*0.2*100,计算完成void serch(void)
{
/*变量定义*/
int current_ID; /*当前ID*/
int percent; /*百分比*/
int point_total; /*总点数*/
int point_remain; /*剩余点数*/
int point_temp; /*临时变量*//*变量初始化*/
current_ID = e; /*初始值第五个*/
percent = 80;
point_total = 100;/*第一个人*/
point_temp = (point_total*percent)/100;
point_remain = point_total - point_temp;
current_ID.total = current_ID.total + point_temp;/*循环*/
percent = 80; /*以后都是80%*/
while(current_ID.Intro != null)
{
/*当前ID为当前ID的介绍人*/
current_ID = current_ID.Intro; point_temp = (point_remain*percent)/100;
point_remain = point_remain - point_temp;
current_ID.total = current_ID.total + point_temp;
} /*剩余点数处理(加给最后的一个人,此人已经在无介绍人)*/
current_ID.total = current_ID.total + point_remain;
}如果不仅从E一人开始,怎样算?也就是假如所有会员都得到100积分,怎样给上级加分
{
Prv_id=id->prv_id //取得介绍人ID
add=score*0.02//计算增加分数
Prv_id->score+=add//介绍人的分数增加
Cal_Value(prv_id,add);//递归计算父级介绍人与积分
}程序中调用Cal_Value()即可了