2014-09-05 77 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組件使用動態名稱**。沒有必要這樣做。爲你的'