数据库中的表是五个字段如下显示,
id  name  date              chickin               chickout 
1   小王  2005-12-01    2005-12-01 08:37:00      2005-12-01 11:10:00
2   小王  2005-12-01    2005-12-01 14:16:00      2005-12-01 18:04:00
3   小张  2005-12-01    2005-12-01 08:38:00      2005-12-01 12:06:00
4   小张  2005-12-01    2005-12-01 14:34:00      2005-12-01 18:24:001   
5   小王  2005-12-02    2005-12-02 08:37:00      2005-12-02 11:10:00
6   小王  2005-12-02    2005-12-02 14:16:00      2005-12-02 18:04:00
7   小张  2005-12-02    2005-12-02 08:38:00      2005-12-02 12:06:00
8   小张  2005-12-02    2005-12-02 14:34:00      2005-12-02 18:24:00
.....
从数据库中取的时候是name查询比如取小王的12-1到12-2号的记录,总共是四条,但是想在循环中一行显示两条记录,也就是一天的两条记录显示在一行里
在线等

解决方案 »

  1.   

    不太明白你说的一行指的是什么. 用什么显示的? JTable的一行?
      

  2.   

    自己在jsp里面判断一下不久可以了这个逻辑不复杂!
      

  3.   

    sql="select to_char( date,'yyyy-mm-dd'), to_char( chickin,'HH24:MI:SS'),to_char(chickout,'HH24:MI:SS') ";
    sql+=" from 表 where DATE Between TO_DATE('"+begintime+"' ,'YYYY-MM-DD') And TO_DATE('"+endtime+"' ,'YYYY-MM-DD')";
    sql+=" and name='"+name+"'" ;
    我是这样查的,查出来以后在页面上用的
    for (int i=0; i<checkOne.size(); i++)不明白你说的是在jsp里怎么叛断?
      

  4.   

    在jsp页面里做一个判断就行了:<table>
    <%
      // 得到需要在一行显示的N个记录users
      User[] users = XXX.getUsers();
    %>
    <tr>
    <%
      for (int i = 0; i < users.length; i++)
      {
    %>
      <td><%=users[i].getUserName()%></td>
    <%
      }
    %>
    </tr>
    </table>这只是个示意代码,具体的逻辑还要你仔细来写.
    不知对你有没有帮助.
      

  5.   

    langya333(potato),你说的这种方法我也想了,可是还是有些困难,
    <TR>
    <TD>日期</TD>
    <TD>签到</TD>
    <TD>签退</TD>
    <TD>签到</TD>
    <TD>签退</TD>
    </TR>
    <TR>
    <%  float tempnum=1;
    for (int i=0; i<checkOne.size(); i++){
    String Tdate=(((Vector)(checkOne.get(i))).get(0)).toString();
    String dao=(((Vector)(checkOne.get(i))).get(1)).toString();
    String tui=(((Vector)(checkOne.get(i))).get(2)).toString();
    %>
    <TD><%=Tdate%></TD>
    <TD><%=dao%></TD>
    <TD><%=tui%></TD>
    <TD><%%></TD>      //这里的两列要下一条记录,
    <TD><%%></TD>    
    <%if (tempnum % 2)==0   {  System.out.println "</TR><TR>" };
       tempnum+=1;
    %>
    <%
    }
    %>
    </TR>
    我现在逻辑有些混乱,麻烦在指点
      

  6.   

    你的checkOne是一个人一天的考勤情况,还是一个人多天的考勤情况?
      

  7.   

    <%if (tempnum % 2)==0   {  System.out.println "</TR><TR>" };
    有什么乱的,上面这行就是控制显示第二列还是显示下一行其他的代码都比较容易理解了
      

  8.   

    我给你发一段代码,经过我的测试,是可以的,你看看是否看得明白,不明白再说.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML>
    <HEAD>
    <%@ page 
    language="java"
    contentType="text/html; charset=GBK"
    pageEncoding="GBK"
    %>
    <META http-equiv="Content-Type" content="text/html; charset=GBK">
    <META http-equiv="Content-Style-Type" content="text/css">
    <TITLE>test.jsp</TITLE>
    </HEAD>
    <%@ page
    import="java.util.*"
    %>
    <BODY><%
    Vector v1 = new Vector();
    v1.add("2005-12-01");
    v1.add("08:33:00");
    v1.add("11:12:00");

    Vector v2 = new Vector();
    v2.add("2005-12-01");
    v2.add("14:13:00");
    v2.add("18:06:00");

    Vector v3 = new Vector();
    v3.add("2005-12-02");
    v3.add("08:37:00");
    v3.add("11:10:00");

    Vector v4 = new Vector();
    v4.add("2005-12-02");
    v4.add("14:16:00");
    v4.add("18:04:00");

    Vector checkOne = new Vector();
    checkOne.add(v1);
    checkOne.add(v2);
    checkOne.add(v3);
    checkOne.add(v4);
    %><%
    Map map = new TreeMap();


    for (int i = 0; i < checkOne.size(); i++)
    {
    Vector v = (Vector) checkOne.get(i);
    String date = v.get(0).toString();
    String dao = v.get(1).toString();
    String tui = v.get(2).toString();

    if (map.get(date) == null)
    {
    map.put(date, v);
    }
    else
    {
    Vector temp = (Vector) map.get(date);
    temp.add(dao);
    temp.add(tui);
    map.put(date, temp);
    }
    }


    %><TABLE border="1">
      <THEAD>
        <TR>
      <TD>日期</TD>
      <TD>签到</TD>
      <TD>签退</TD>
      <TD>签到</TD>
      <TD>签退</TD>
        </TR>
      </THEAD>
      <TBODY>
    <%
    Iterator iter = map.keySet().iterator();
    while (iter.hasNext())
    {
    String key = iter.next().toString();
    Vector vector = (Vector) map.get(key);
    %>
        <TR>
          <TD><%=key%></TD>
          <TD><%=vector.get(1)%></TD>
          <TD><%=vector.get(2)%></TD>
          <TD><%=vector.get(3)%></TD>
          <TD><%=vector.get(4)%></TD>
        </TR>
    <%
    }
    %>
      </TBODY>
    <TBODY>
    </TBODY>
    </TABLE>
    </BODY>
    </HTML>