2016-09-23 4 views
0

オンラインクイズアプリケーションを作成しようとしています。私は質問#、質問とオプションのある質問表を持っています。要件は、一度に1つの質問とansをUIに表示し、ユーザーが次のをクリックすると別の質問とansを表示することです。私は以下のコードを持っていますが、 'i'を入力するとselectクエリが機能しません。私はデバッグとその作業のためだけに1を入れようとしました。増分演算子を使用した動的mySQLクエリ

<form name="myform"> 

    <table> 
<% 
try 
{ 
Class.forName("com.mysql.jdbc.Driver"); 
String localhost="jdbc:mysql://localhost:3306/pr1"; 
Connection connection=DriverManager.getConnection(localhost, "root", "root"); 
Statement st=connection.createStatement(); 

int i= 1; 

ResultSet rs=st.executeQuery("select * from question where Qno=i");  
while(rs.next()) 
{ 
%> 
      <tr><td> <%=rs.getString("question")%></td></tr> 
      <tr><td><br/></td></tr> 
      <tr><td style="padding: 10px;">A .&nbsp;<input type="radio" name="option" value="optionA"/><%=rs.getString("optionA")%></td></tr> 
      <tr><td style="padding: 10px;">B .&nbsp;<input type="radio" name="option" value="optionB"/><%=rs.getString("optionB")%></td></tr> 
      <tr><td style="padding: 10px;">C .&nbsp;<input type="radio" name="option" value="optionC"/><%=rs.getString("optionC")%></td></tr> 
      <tr><td style="padding: 10px;">D .&nbsp;<input type="radio" name="option" value="optionD"/><%=rs.getString("optionD")%></td></tr> 
      <tr><td><br/></td></tr> 
      <tr><td><input type="submit" name="next" value="Next"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        <input type="submit" value="Previous"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        <input type="submit" value="Test Summary"/></td></tr> 
<% 
} 
%> 
    </table> 
<% 
    if(request.getParameter("next")!=null) 
    {i++; 
    System.out.print(i); 
    } 
    rs.close(); 



    st.close(); 
    connection.close(); 
    } 
catch(Exception e) 
{ 

    e.printStackTrace(); 
    } 

%> 
    </form> 

答えて

0

JavaはPHPではない、SQLコマンドを含む文字列の中に変数iを拡大するつもりはありません。最も単純な形式、使用文字列連結で

ResultSet rs=st.executeQuery("select * from question where Qno=" + i); 

あなたはユーザーからの任意のパラメータを取得する場合は、SQLインジェクションを防ぐためにパラメータでプリペアドステートメントを使用しています。

関連する問題