【问题标题】:Retrieving data and inserting to database检索数据并插入数据库
【发布时间】:2016-12-28 18:55:21
【问题描述】:

在下图中,当用户按下提交按钮时,应用程序将选择的号码插入到数据库中。但它不适用于activityid 号码。按下提交按钮后,activityid 返回 null,buy 返回选择的数字。如何在数据库 上插入正确的activityid

音乐.jsp

  <table border="1" width="30%" height="30%">
            <th><font color='#D18603'>ActivityID</font>
            <th><font color='#D18603'>Type</font></th>
            <th><font color='#D18603'>Description</font></th>
            <th><font color='#D18603'>City</font></th>
            <th><font color='#D18603'>Location</font></th>
            <th><font color='#D18603'>Date</font></th>
            <th><font color='#D18603'>Price</font></th>
            <th><font color='#D18603'>Buy</font>

                        <%
                            Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
                            Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/users", "users", "123");

                            Statement st = con.createStatement();
                            ResultSet rs;
                            rs = st.executeQuery("select * from activities where type='müzik'");
                            while (rs.next()) {

                                out.println("<tr>");
                                out.println("<td>" + rs.getString("id")+"</td>");
                                out.println("<td>" + rs.getString("type")+ "</td>");
                                out.println("<td>" + rs.getString("description")+ "</td>");
                                out.println("<td>" + rs.getString("city") + "</td>");
                                out.println("<td>" + rs.getString("location")+ "</td>");
                                out.println("<td>" + rs.getString("date") + "</td>");
                                out.println("<td>" + rs.getString("price") + "</td>");
                                out.println("<td><b><form action='reservations.jsp'><select name='buy'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select><input type='submit' value='Submit'></form></b>");
                                out.println("</tr>");

                            }
                            st.close();

                        %>

Reservation.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import ="java.sql.*" %>
<%

String username = (String) request.getSession().getAttribute("username");
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/users", "users", "123");

String sorgu = "INSERT INTO reservation(id,username,buy) VALUES ('" + request.getParameter("id") + "', '" + username + "','" + request.getParameter("buy") + "') ";

java.sql.Statement st = con.createStatement();

int rowNum = st.executeUpdate(sorgu);
response.sendRedirect("paypal.html");
st.close();
%>

【问题讨论】:

  • 我看不到您在哪里为 ActivityId 列分配了名称以将其作为参数传递。
  • 是的。这就是问题。我怎样才能做到这一点 ?我在谷歌上搜索但找不到。这是我的解决方案,你能帮帮我吗??

标签: java html sql jsp


【解决方案1】:

您需要获取每一行中所有数据的标签,并为每一列添加(隐藏)表单标签,以便所有数据都包含在表单提交中。为了清楚起见,除了如何组织表单标签以及如何在表单提交中包含“id”之外,我已经消除了所有内容

                        rs = st.executeQuery("select * from activities where type='müzik'");
                        while (rs.next()) {

                            out.println("<tr>");
                            out.println("<form action='reservations.jsp'>");
                            out.println("<td>" + rs.getString("id") + "<input type='hidden' name='id' value='" + td.getString("id")+"'></td>");
                            out.println("<td><input type='submit' value='Submit'></form></b></td>");
                            out.println("</td></tr>");

                        }
                        st.close();

【讨论】:

  • 我按照你说的做了,但它返回的仍然是数据库中的活动 ID 为空
  • 抱歉,我忘记在输入字段中添加“name='id'”。我已经更正了我的答案。但是问题是从提交到db insert jsp页面的参数中没有值,还是数据库中有数据?是带参数的吧?
猜你喜欢
  • 2015-12-28
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多