Javascript 我想通过jsp将我的表数据保存在mysql数据库中
我正在使用EclipseIDE开发jsp。我的项目基于员工时间管理系统。因此,我需要节省员工每天工作的时间以及相应的项目名称。如果我的表包含一条记录,它将获取数据并正确保存。但是我的代码不能处理多个记录。只需要一张唱片。但我的要求是在一个表中保存多条记录。请告诉我怎么做才对Javascript 我想通过jsp将我的表数据保存在mysql数据库中,javascript,java,css,Javascript,Java,Css,我正在使用EclipseIDE开发jsp。我的项目基于员工时间管理系统。因此,我需要节省员工每天工作的时间以及相应的项目名称。如果我的表包含一条记录,它将获取数据并正确保存。但是我的代码不能处理多个记录。只需要一张唱片。但我的要求是在一个表中保存多条记录。请告诉我怎么做才对 **my form(user.php)** <form method="post" action="addhours.jsp"> <table class="table table-bordered
**my form(user.php)**
<form method="post" action="addhours.jsp">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Project</th>
<th><input type="text" name="date" value="<%=d.format(cal.getTime())%>" readonly></th>
<th><input type="text" name="date" value="<%=d.format(cal2.getTime())%>" readonly></th>
<th><input type="text" name="date" value="<%=d.format(cal3.getTime())%>" readonly></th>
<th><input type="text" name="date" value="<%=d.format(cal4.getTime())%>" readonly></th>
<th><input type="text" name="date" value="<%=d.format(cal5.getTime())%>" readonly></th>
</tr>
</thead>
<tbody>
<% while (rs.next()) { %>
<tr>
<th><input type="text" name="project_name" value="<% out.println(rs.getString("project_name")); %>" readonly></th>
<td>
<input type="text" name="day1" class="form-control">
</td>
</tr>
<% } %>
</tbody>
</table>
<div class="panel-heading no-collapse text-center" style="font-size:14px">
<input type="submit" name="submit" value="Save">
</div>
</form>
**code to save the data(addhours.php)**
<%
String project_id = null;
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
Statement st = con.createStatement();
String hours = request.getParameter("day1");
String userid = (String)session.getAttribute("userid");
String project_name = request.getParameter("project_name");
out.println(project_name);
String date = request.getParameter("date");
session.setAttribute("hours", hours);
out.println(hours);
ResultSet rs;
rs = st.executeQuery("select * from project_task where project_name = '"+project_name+"'");
if (rs.next())
project_id=rs.getString("project_id");
if (hours != null && hours != "") {
int i=st.executeUpdate("insert into workhours(userid,hours,project_id,date) values ('"+userid+"','"+hours+"','"+project_id+"','"+date+"')");
out.println("saved");
}
%>
**我的表单(user.php)**
项目
**保存数据的代码(addhours.php)**
使用while循环
而不是if
语句
rs=st.executeQuery("select * from project_task where project_name='"+project_name+"'");
while(rs.next())
project_id=rs.getString("project_id");
if(hours!=null && hours!=""){
int i=st.executeUpdate("insert into workhours(userid,hours,project_id,date) values ('"+userid+"','"+hours+"','"+project_id+"','"+date+"')");
out.println("saved");
}
当您的
project\u name
和day1
字段都具有相同的名称时,您会期望什么?我期望日期字段(即day1)将与相关的表标题数据(即project\u name)一起保存。只保存第一条记录,但它不会从第二条记录获取数据。您必须为字段创建数组在你的while循环中。示例:name=“project\u name[]”
-看看这个:javax.servlet.ServletException:java.sql.SQLException:ResultSet closed后不允许操作这表明ResultSet
已关闭,您再次执行查询