数据库中的表是五个字段如下显示,
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号的记录,总共是四条,但是想在循环中一行显示两条记录,也就是一天的两条记录显示在一行里
在线等
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号的记录,总共是四条,但是想在循环中一行显示两条记录,也就是一天的两条记录显示在一行里
在线等
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里怎么叛断?
<%
// 得到需要在一行显示的N个记录users
User[] users = XXX.getUsers();
%>
<tr>
<%
for (int i = 0; i < users.length; i++)
{
%>
<td><%=users[i].getUserName()%></td>
<%
}
%>
</tr>
</table>这只是个示意代码,具体的逻辑还要你仔细来写.
不知对你有没有帮助.
<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>
我现在逻辑有些混乱,麻烦在指点
有什么乱的,上面这行就是控制显示第二列还是显示下一行其他的代码都比较容易理解了
<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>