2014-09-05 72 views
0

我有一个表显示来自数据库的项目。在第一个ResultSet中,我创建了一个下拉菜单,让您选择是否希望项目可用。但是,因为我已经在第一个ResultSet rs中创建了它,所以我可以在第二个ResultSet rs1中使用它。问题是,在这条线:JSP - 更改SQL数据库中的值

if (request.getParameter(rs1.getString("naziv") + "polje").equals("Nedostupno")) 

这里是整个代码:

<%@page import="java.sql.DriverManager"%> 
<%@page import="java.sql.ResultSet"%> 
<%@page import="java.sql.Statement"%> 
<%@page import="java.sql.Connection"%> 

<%@page contentType="text/html" pageEncoding="UTF-8"%> 

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="Stil/cssstil.css"> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Prikaz oružja</title> 
</head> 
<body> 
    <h1>Prikaz oruzja</h1> 
    <% 
     out.print("<p align = \"center\">Administrator <a style=\"color:red;\">" +  session.getAttribute("user") + "</a></p>"); 
    %> 
    <table align = "center" bgcolor = "darkgrey" border = "1" cellpadding="3" cellspacing="1"> 
     <tr> 
      <td> 
       <p style = "color: black;">Naziv</p> 
      </td> 
      <td> 
       <p style = "color: black;">Opis</p> 
      </td> 
      <td> 
       <p style = "color: black;">Cena</p> 
      </td> 
      <td> 
       <p style = "color: black;">Dostupnost</p> 
      </td> 
      <td> 

      </td> 
     </tr> 
     <% 
      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
       Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/CS230-Projekat", "root", "123"); 
       Statement statement = connection.createStatement(); 
       String sql = "SELECT * FROM oruzje"; 
       ResultSet rs = statement.executeQuery(sql); 
       while (rs.next()) { 
     %> 
     <tr bgcolor="grey"> 

      <td><%=rs.getString("naziv")%></td> 
      <td><%=rs.getString("opis")%></td> 
      <td><%=rs.getString("cena")%></td> 
      <% 
       if (rs.getString("dostupnost").equals("1")) { 
        out.print("<td><p style = \"color: green; font-size: 20px\">Dostupno</p></td>"); 

       } else { 
        out.print("<td><p style = \"color: red; font-size: 20px\">Nedostupno</p></td>"); 
       } 
      %> 
      <% 
        int a = rs.getInt("dostupnost"); 
        if (a == 1) { 
         out.print("<td><select name=\"" + rs.getString("naziv") + "polje\"><option value = \"Dostupno\">Dostupno</option><option value = \"Nedostupno\">Nedostupno</option></select></td>"); 
        } else { 
         out.print("<td><select name=\"" + rs.getString("naziv") + "polje\"><option value = \"Dostupno\">Dostupno</option><option value = \"Nedostupno\">Nedostupno</option></select></td>"); 
        } 
       } 


      %> 
     </tr> 
     <tr><td></td><td></td><td></td><td></td> 
      <td align=center> 
       <form method="post"> 
        <%  Statement statement1 = connection.createStatement(); 
          int bre; 
          ResultSet rs1 = statement.executeQuery(sql); 
          while (rs1.next()) { 
           if (request.getParameter(rs1.getString("naziv") + "polje").equals("Nedostupno")) { 
            bre = statement1.executeUpdate("UPDATE oruzje SET dostupnost = 0 WHERE naziv='" + rs1.getString("naziv") + "'"); 
           } else { 
            bre = statement1.executeUpdate("UPDATE oruzje SET dostupnost = 0 WHERE naziv='" + rs1.getString("naziv") + "'"); 
           } 

          } 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 

        %> 
        <input type="submit" value="Apply" name="Apply" /> 
       </form> 
      </td> 
     </tr> 
    </table> 

    <p style=" position: absolute; bottom: 0; left: 0; width: 100%; text-align: center;"><a href ="index.jsp"><img src = "Slike/home.png" alt = "home"/></a></p> 
</body> 

+1

我建议不要为您的HTML组件使用* dynamic *名称。另外,请避免在代码中使用scriptlet。 – 2014-09-05 00:50:20

+0

我知道我的代码不好,但这是学校作业,我必须尽快完成它,所以我没有太多时间做研究,正如你所看到的。没有完全改变代码是否可以解决这个问题? – 2014-09-05 00:52:03

+0

同样:**我会建议不要为您的HTML组件使用动态名称**。没有必要这样做。为你的'