自己循环一下应该可以吧?
要是一条sql语句就能搞定的话,我也想学

解决方案 »

  1.   

    JSP我不会,我觉得没有必要使用一条sql语句实现,我尝试写如下结构:会员e得到的积分 x=100;
    变量 会员名称 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;
    }
      

  2.   

    大家参考一下这段程序
    计算办法:假如第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积分,怎样给上级加分
      

  3.   

    这个太简单了写个递归函数函数jsp的语法忘了 大意是:fucntion Cal_Value(id,score)
    {
    Prv_id=id->prv_id //取得介绍人ID
    add=score*0.02//计算增加分数
    Prv_id->score+=add//介绍人的分数增加
    Cal_Value(prv_id,add);//递归计算父级介绍人与积分
    }程序中调用Cal_Value()即可了