在users表中对有userid,username,passwd,Email,jifen等字段,怎么对jifen字段进行增加积分,兑换积分啊?sql语句应该是怎么 写的?各位帮帮忙!

解决方案 »

  1.   

    something like this?update users set users.jifen = users.jifen + increment where users.userid = ?
      

  2.   

    也就是1楼这样的做法了,update命令。
    increment最好是一个常量兑换积分就是 - increment
      

  3.   

    我是在购物车里根据总价计算积分的!increment怎么设置啊?
      

  4.   

    总价?
    那就是多表连接查询了,
    或者在Java程序中先算出increment值
      

  5.   

    是的啊?可是public UserBean Upjifen(MyCartBO mcb,String userId,int Jifen) {
    UserBean ub=new UserBean();
    boolean b=false;
    //MyCartBO mcb=new MyCartBO();
    //ArrayList al=mcb.showMycart();


    try{

    //真的代码.
    //int increment=mcb.getJifen();
    ct=new ConnDB().getConn();
    ps=ct.prepareStatement("update users set users.jifen = users.jifen + Jifen where users.userid = userId ");
    //执行
    int a=ps.executeUpdate();

    if(a==1){
    String sql="select * from users where userid=?";


    ps=ct.prepareStatement(sql);

    rs=ps.executeQuery();

    if(rs.next()){

    //将rs封装到userbean
    ub.setUserid(rs.getLong(1));
    ub.setUsername(rs.getString(2));
    ub.setTruename(rs.getString(3));
    ub.setPasswd(rs.getString(4));
    ub.setEmail(rs.getString(5));
    ub.setPhone(rs.getString(6));
    ub.setAddress(rs.getString(7));
    ub.setPostcode(rs.getString(8));
    ub.setGrade(rs.getInt(9));

    b=true;

    }  



    }catch (Exception e1) {
          e1.printStackTrace();
        } finally {
          this.close();
        }
        return ub;
     
    }设置了一个sevlet
    //得到购物车
    MyCartBO mcb=(MyCartBO)request.getSession().getAttribute("mycart");

    //用户jifen
    //int jifen=((UserBean)request.getSession().getAttribute("userInfo")).getJifen();

    int Jifen=mcb.getJifen();
    long userId=((UserBean)request.getSession().getAttribute("userInfo")).getUserid();
    UserBean ub=ubb.Upjifen(mcb, userId+"",Jifen);
    //int j=mcb.getJifen();
    //用户jifen

    if(ub!=null){

    //添加成功


    request.setAttribute("userInfo", ub);
    request.getRequestDispatcher("userlogin_down.jsp").forward(request, response);
    }else{
    //添加失败
    request.getRequestDispatcher("index.jsp").forward(request, response);
    }

    //request.getRequestDispatcher("userlogin_down.jsp").forward(request, response);

    }结果登录后的页面积分没显示
      

  6.   

    这句话肯定是有问题的,因为Jifen和userId都是Java变量,哪能放SQL中呢?
    这样改ps=ct.prepareStatement("update users set users.jifen = users.jifen + " + Jifen + " where users.userid = " + userId );
      

  7.   


    ps=ct.prepareStatement("update users set users.jifen = users.jifen + Jifen where users.userid = userId ");Jifen  : 执行起来就有问题。
    改为 "+Jifen+"