Javascript 我想通过jsp将我的表数据保存在mysql数据库中

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

我正在使用EclipseIDE开发jsp。我的项目基于员工时间管理系统。因此,我需要节省员工每天工作的时间以及相应的项目名称。如果我的表包含一条记录,它将获取数据并正确保存。但是我的代码不能处理多个记录。只需要一张唱片。但我的要求是在一个表中保存多条记录。请告诉我怎么做才对

**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
已关闭,您再次执行查询