........
String sql = "";
String a = "";
int i=0;
sql="select a,b from ab where id='0' order by b";
rs = stmt.executeQuery( sql );
%>
<table border="1" cellspacing="0" width="161" height="20">
<tr>
<%
while(rs.next()){
a=rs.getString("a").trim();
b=rs.getString("b").trim(); 
if(i % 3 == 0){
%>
<br/><br/>
 <p align="left"><b><font size="2">&nbsp;&nbsp; </font><font size="4">组号 <%=b%></font></b></p><%}
i++; %>
<table border="1" cellspacing="0" width="161" height="20">
<tr> 
<td height="20" colspan="2" align="center"><font size="2"> <%=a%> </font></td>
</tr>
</table>
<%} %>
.........
我的数据库的数据是:
字段     id     a         b
             0    钢笔    023
             0    铅笔    023
             0    圆珠笔  023
             0    圆珠笔  023
             0    钢笔    056
             0    铅笔    056
             0    圆珠笔  087
             0    圆珠笔  087 
字段a是货物名称,b是组号
以上代码已经实现功能如下:组号 023
钢笔
铅笔 
圆珠笔 
组号 023圆珠笔 
钢笔
铅笔 
组号 087圆珠笔 
圆珠笔 现在怎样才能一组一组循环显示?
象下面的效果:
组号 023
钢笔
铅笔 
圆珠笔 
圆珠笔
组号 056钢笔
铅笔 组号 087圆珠笔 
圆珠笔 

解决方案 »

  1.   

    每个rs.next()下是一个<tr>
    每个属性是一个<td>
      

  2.   

    String t = "";
    while(rs.next())
    {
    a=rs.getString("a").trim();
    b=rs.getString("b").trim(); 
    if(!t.equals(b))
    {...}
    t = b;
    }试试
      

  3.   

    <%
    while(rs.next()){
    a=rs.getString("a").trim();
    b=rs.getString("b").trim(); 
    if(i % 3 == 0){
    %>
    <br/><br/>
     <p align="left"><b><font size="2">&nbsp;&nbsp; </font><font size="4">组号 <%=b%></font></b></p><%}
    i++; %>替换为====>>><%
    String t = "";
    while(rs.next())
    {
    a=rs.getString("a").trim();
    b=rs.getString("b").trim(); 
    if(!t.equals(b)){
    %>
    <br/><br/>
     <p align="left"><b><font size="2">&nbsp;&nbsp; </font><font size="4">组号 <%=b%></font></b></p><%
    t = b;
    }%>
      

  4.   

    yxxx(小孬)谢谢您了。
    我还想问个问题。答对再加50分。
    怎么来控制每组循环显示在10行的距离里,也就是每组循环显示在规定的范围里。
    的效果:
    组号 023
    钢笔
    铅笔 
    圆珠笔 
    圆珠笔
    组号 056
    钢笔
    铅笔 
    组号 087
    圆珠笔 
    圆珠笔 
      

  5.   

    <%
    int i = 0;
    String t = "";
    while(rs.next())
    {
    a=rs.getString("a").trim();
    b=rs.getString("b").trim(); 
    if(!t.equals(b)){
    for(int j=0;j<10-i;j++)
      out.println("<br>");
    %>
    <br/><br/>
     <p align="left"><b><font size="2">&nbsp;&nbsp; </font><font size="4">组号 <%=b%></font></b></p><%
    t = b;}
    i++;
    %>试试看
      

  6.   

    yxxx(小孬)非常谢谢您回答。
    符合我的要求,但有个小问题在循环出来后第一组上面也空10行了,变成:组号 023
    钢笔
    铅笔 
    圆珠笔 
    圆珠笔........有什么办法第一组不要空10行直接象这样:
    组号 023
    钢笔
    铅笔 
    圆珠笔 
    圆珠笔
      

  7.   

    yxxx(小孬)能帮我再看看吗?谢谢!
      

  8.   

    <%
    int i = 0;
    String t = "";
    boolean start = false;
    while(rs.next())
    {
    a=rs.getString("a").trim();
    b=rs.getString("b").trim(); 
    if(!t.equals(b)){
    if(start)
    for(int j=0;j<10-i;j++)
      out.println("<br/>");
    %>
    <br/><br/>
     <p align="left"><b><font size="2">&nbsp;&nbsp; </font><font size="4">组号 <%=b%></font></b></p><%
    t = b;
    start = true;}
    i++;
    %>加个判断就行了