本帖最后由 Mozhx 于 2010-03-20 15:41:50 编辑

解决方案 »

  1.   

    显示的SQL语句和你的update 语句没有需要相同的必要。 在你的JSP程序根据用户修改的input text 的ID来确定 用户ID和报纸ID,然后生成UPDATE语句进行修改。
      

  2.   


    但是input text 的ID必须对应number表中的id才能有条件判断要修改的是那条记录
      

  3.   

    你的 input text id="xxx_row_col"通过这个不就知道了??
      

  4.   

    你的 input text id="xxx_row_col"通过这个不就知道了??
      

  5.   

    id name 报纸1 报纸2
    1 用户1 10 20
    2 用户2 0 30上面结果集只有一个id,还有一个报纸的id呢?
      

  6.   

     报纸1 报纸2 通过这个,你不就知道了吗? 然后给 input box 一个 name 
      

  7.   


    我知道你说的这些number表(数量表)
    id userId pagerId amount
    1 1 1 10
    2 1 2 20
    3 2 2 30在jsp里修改的就是number表。
    要修改记录必须取得记录id但通过sql的行转列后结果集变成下面这样:
    id name 报纸1 报纸2
    1 用户1 10 20
    2 用户2 0 30上面只有每个报纸的数量,还必须有每个报纸在数量表中的记录id才可以设置每个显示数量input text控件的id啊,
      

  8.   

    id name 报纸1 报纸2
    1 用户1 10 20
    2 用户2 0 30
    这个10 你知道不知道它的报纸ID?
     报纸1 这一列对应的 报纸ID 你是否知道?
      

  9.   

    id name 报纸1 报纸2
    1 用户1 10 20
    2 用户2 0 30
    现在的结果集就是上面这样,你说我能说出报纸1的id 与报纸2的id吗,当然不能啦。所以才要解决啊。
      

  10.   


    id name 报纸1 id1 报纸2 id2
    1 用户1  10    1   20   2
    2 用户2  0     0   30   2上面的办法能行吗?报纸字段后面的字段都对应着该报纸数量在数量表中的id
      

  11.   

    name 报纸1 id1 报纸2 id2
    用户1 10 1 20 2
    用户2 0 0 30 3上面的办法能行吗?报纸字段后面的字段都对应着该报纸数量在数量表中的id
      

  12.   

    id name 报纸1 id1 报纸2 id2
    1 用户1  10    1   20   2
    2 用户2  0     0   30   2你的 
    用户1  10 

    用户2  0 
    这两个同一列  报纸1  的报纸难道不是同一个报纸ID的????这和你的SQL语句不符啊。
      

  13.   


    id为0是表示该用户2在数量表中没有报纸1的数量,也就是说没有数量的报纸是不存在数量表中的所有要用0表示,我会在程序中判断id为0时设置数量为0的。
      

  14.   

    根据你的SQL语句,为什么无法确定第一列
    id  name  报纸1  报纸2
    1   用户1  10     20
    2   用户2   0     30
    的报纸ID?难道不是 1    报纸1  吗?? 花了这么多个楼层来回讨论一直搞不清楚,为什么无法确定报纸ID, 需要楼主详细解释一下。
      

  15.   


    这句话错了,应该这样说,当修改为0数量的报纸时,取得input的id当然也是0
    程序会首先判断如果id为0,就插入记录,如果不为0就是更新记录
      

  16.   

    建议楼主直接回答,否则别人无法准确理解。
    根据你的SQL语句,为什么无法确定第一列 的报纸ID?
    难道不是 1    报纸1  吗?? (只需要回答 是或不是)
      

  17.   

    第一列中的数量的报纸ID并不相同。 这和你的SQL语句并不符啊!。
    select tn.id,u.name, 
         sum(if(tn.name='报纸1,tn.amount,0)) AS '报纸1',
         sum(if(tn.name='报纸2',tn.amount,0)) AS '报纸2'id  name  报纸1  报纸2
    1   用户1  10     20
    2   用户2   0     30能说明一下
    1   用户1  10    的报纸ID是什么?
    2   用户2   0     的报纸ID是什么?id  name  报纸1  报纸2
    1   用户1  10     20 报纸2的ID是什么?
    2   用户2   0     30 报纸2的ID是什么?另外 number表(数量表) 中有相同的  userId pagerId  的两条记录吗? 有/没有
      

  18.   

    number表(数量表)
    id userId pagerId amount
    1 1 1 10
    2 1 2 20
    3 2 2 30paper表(报纸名称表)
    id name
    1 报纸1
    2 报纸2user表(用户表)
    id name
    1 用户1
    2 用户2------------
    根椐上面表中记录:id name 报纸1 报纸2
    1 用户1 10 20
    2 用户2 0 301 用户1 10 的报纸ID是什么?--1
    2 用户2 0 的报纸ID是什么?--1id name 报纸1 报纸2
    1 用户1 10 20 报纸2的ID是什么?--2
    2 用户2 0 30 报纸2的ID是什么?--2
    另外 number表(数量表) 中有相同的 userId pagerId 的两条记录吗? 有/没有
      

  19.   

    同一列中,有不同的报纸ID吗?  有/没有
    是否知道该列的报纸ID? 是/没办法
    知道了 userId pagerId 是否能找到要更新的记录? 是/没办法
      

  20.   

    同一列中,有不同的报纸ID吗? /没有
    是否知道该列的报纸ID? /没办法
    知道了 userId pagerId 是否能找到要更新的记录? /没办法
      

  21.   

    id name 报纸1 报纸2
    1 用户1 10 20
    2 用户2 0 30下面你所说的问题是不是以上面的结果集来提问的?同一列中,有不同的报纸ID吗? 有/没有
    是否知道该列的报纸ID? 是/没办法
    知道了 userId pagerId 是否能找到要更新的记录? 是/没办法

      

  22.   

    name 报纸1 报纸2
    用户1 10 20
    用户2 0 30只以上面结果来回答:同一列中,有不同的报纸ID吗? 有/没有
    --上面结果集怎么会有这个问题问呢,不会回答这个问题,所以不知道是否知道该列的报纸ID? 是/没办法
    --上面结果集只有三个字段 一:用户名 二:报纸1(比如:广州) 三:报纸2(比如:羊城)
    --再没有其它字段,你说能知道这个报纸ID吗??知道了 userId pagerId 是否能找到要更新的记录? /没办法
      

  23.   

    也就是说,即使知道了 广州 你都无法知道这个报纸的 pagerId  ?sum(if(tn.name='报纸1,tn.amount,0)) AS '报纸1',如果这样你能举个例子说明一下吗? tn.name='报纸1' 却拥有不同的 pagerId  的。 我实在被你整得糊涂了
      

  24.   

    如果已知 '广州' 你完全可以在程序JSP中通过另一个查询得到  '广州'  所对应的ID
      

  25.   

    哦,你这样一说我倒明白你说的userId和pagerId从哪 里来了。
    我一直想到的都是用number表的id来修改数据,倒是没想到过可以用报纸名称来取得id 再用用户名来取得id,然后再通过userId pagerId修改你是这个意思吗???