A.jsp页面有复选框,把选中的值作为ID传给B.jsp,比如B中获取所选中的复选框值 String[] str = request.getParameterValues("复选框的name");  这个数组里面的值都是数据库表中的ID字段。
for(int i=0;i<str.length;i++){

  sql = "select count(*) from 表名 where ID = "+str[i];
}执行发现 这条语句只会取到str[]数组第一个值。现在请教各位下,我想要把数组中所有值都取到 ,SQL语句应该怎么写?

解决方案 »

  1.   

    声明我也是一个菜鸟,不过我感觉你这样做应该不行。我的做法是:把每个复选框都设一个Id,通过Id获得value,然后一个一个的写SQA语句,当然也可以写个方法,哪个地方用直接调用就行啦。我以前做这之类的都是这样做的
      

  2.   

    我也很菜,首先,请确认数组是对的,按你的代码应该是只取到数组中最后一值,或者说你的数组本来就只有一个值,如果数组是对,可能根据需求链接SQL试sql="select count(*) from 表名 where false";
    for(int i=0;i<str.length;i++){
        
      sql += " or ID = "+str[i];    
    }
      

  3.   

    for(int i=0;i<str.length;i++){
      System.out.println(str[i]);//这里你打印出来看看
      sql = "select count(*) from 表名 where ID = "+str[i];  
    }
    这样写是可以的哈;如果你打印出来也是只取的数组的第一个值的话,表示你传值除了问题。
      

  4.   

    String temp="";
    for(int i=0;i<str.length;i++)
    {
        if(i==str.length-1)
        {
           temp=temp+str[i];
        }
        else
        {
           temp=temp+str[i]+","
        }
    }
    sql="select count(*) from 表名 where ID in"+temp;
    上述代码就是说先把条件拼成一个字符串,然后连到sql上
    楼主试试,应该没问题的。
      

  5.   


    这样写怎么可以呢!如果数组有多个值,循环多次不断的会覆盖sql语句,最后只会得到最后一条语句。
      

  6.   

    我发表这个问题的时候 ,代码写错了应该是for(int i=0;i<str.length;i++){
        
      sql = "select count(*) from 表名 where ID in "+str[i];    
    }
    我在SQL查询分析器里面执行是可以的。。比如我在查询分析器里面执行select count(*) from 表名 where ID in (1,2,5);我之所以要取数组里面的值,是因为数组中的值排列是无序的。望大家帮我也想想这个问题怎么解决哈。。
      

  7.   


    我也试过这样方法,但是结果集之前会有个Null..