management.jsp(用post传到mcheckreview.jsp处理)
<form method="post" action="mcheckreview.jsp" >
<div style="overflow-y:scroll; position:relative; right:100px; overflow-x:none; height:180px;">
<table border="0" width="100%">
<tr>
<td width="10%" style="text-align:center">编号</td>
<td width="20%" style="text-align:center">电话</td>
<td width="60%" style="text-align:center">评论</td>
<td width="10%" style="text-align:center">回复</td>
</tr>
<%
while(rs.next())
{
String id=rs.getString(1);
String number=rs.getString(2);
String content=rs.getString(3);
%>
<tr>
<td style="text-align:center" name="id"><input name="id" value='<%=id %>' style="background:grey; border:none; outline:none; text-align:center;"> </td>
<td style="text-align:center" ><%=number %> </td>
<td style="text-align:center"><%=content %> </td>
<td><input type="submit" value="回复" ></td>
</tr>
<%
}
%>
</table>
</div>
<input type="text" name="back">
</form>
mcheckreview.jsp
<%
Connection conn = null;
PreparedStatement ps = null;
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/wutourism?&useUnicode=true&characterEncoding=UTF-8";
String username = "root";
String password = "imissyou15";
conn = DriverManager.getConnection(url, username, password);
request.setCharacterEncoding("utf-8");//设置编码方式,防止中文乱码
String id = request.getParameter("id");
String back = request.getParameter("back");//insert into review(id,back) values(?,?)
String sql = "update review set back=? where id=?";
ps = conn.prepareStatement(sql);
ps.setString(1, id);
ps.setString(2,back);
int row = ps.executeUpdate();
if(row>0){
System.out.print(request.getParameter("id"));
System.out.print(request.getParameter("back"));//测试是否取到上个页面的值
out.println("<script language='javascript'>alert('成功!');window.location.href='./management.jsp';</script>");
}
ps.close();
conn.close();
%>
问题:1:
System.out.print(request.getParameter("id"));
System.out.print(request.getParameter("back"));
把这两行代码放在if外面,命令行就可以输出取到的值;但放在if里面就取不到,是这里出错了吧?可是我注册语句这样写就没问题欸。
2: 取出来的数据id总是1,但我提交的时候点的并不是id=1那一行。
尝试:我觉得可能我sql语句有错,就从insert改到update,然后set back=?(set back='"+back+"') ,where id=?(where id='"+id+"')我都写过,但还是不对,改的时候也出现报错说 int row=ps.executeUpdate();那一句
说明:现在这样的代码问题在于 ,数据传不到数据库,但也不输出报错,也不会重定向到management.jsp(也就是上面那个页面)