Topic: 投票系统只记录票数不记录百分之求助??? |
Print this page |
1.投票系统只记录票数不记录百分之求助??? | Copy to clipboard |
Posted by: SQL20000 Posted on: 2003-08-06 13:47 共有两文件: vote.jsp ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; <%@ page contentType="text/html;charset=gb2312" language="java"%> <%@page import="java.sql.*"%> <%@include file="./include/config.inc.jsp"%> <%@include file="./global.jsp"%> <%@include file="./include/conn.jsp"%> <html> <body> <% StringBuffer nameList=new StringBuffer(); //Connection con=null; try { java.sql.Statement statement=conn.createStatement(); rs=statement.executeQuery("select * from people"); nameList.append("<form action=startvote.jsp method=post>"); nameList.append("<table border>"); nameList.append("<tr>"); nameList.append("<th width=100>"+"姓名"); nameList.append("<th width=50>"+"投票选择"); nameList.append("</tr>"); while (rs.next()) { //nameList.append("tr"); String name=rs.getString(1); nameList.append("<td>"+name+"</td>"); String s="<input type=radio name=name value="+name+" >"; nameList.append("<td>"+s+"</td>"); nameList.append("</tr>"); } nameList.append("</table>"); nameList.append("<input type=submit value=提交>"); nameList.append("</form>"); conn.close(); out.println(nameList); } catch(SQLException e1){} %> </bdoy> </html> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2.接上 [Re: SQL20000] | Copy to clipboard |
Posted by: SQL20000 Posted on: 2003-08-06 13:49 startvote.jsp ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; <%@ page contentType="text/html;charset=gb2312" language="java"%> <%@page import="java.sql.*"%> <%@include file="./include/config.inc.jsp"%> <%@include file="./global.jsp"%> <%@include file="./include/conn.jsp"%> <html> <body> <%! //记录总票数的变量. int total=0; //操作总票数的同步方法. synchronized void countTotal() { total++; } %> <% boolean vote=true;//决定用户是否有权投票的变量. //得到被选择的候选人名字. String name=""; name=request.getParameter("name"); if(name==null) { name="?"; } byte a[]=name.getBytes("ISO-8859-1"); name=new String; //得到投票人的IP地址. String IP=(String)request.getRemoteAddr(); //加载桥接器. java.sql.Statement statement=conn.createStatement(); //rs=statement.executeQuery("select * from gqxx"); //首页查询IP表,判断该用户的IP地址是否已经投过票. try { //sql=con.createStatement(); rs=statement.executeQuery("select * from IP where IP="+"'"+IP+"'"); int row=0; while(rs.next()) { row++; } if(row>1) { vote=false;//不允许投票. } } catch(SQLException e) {} if(name.equals("?")) { out.print("您没有投票,没有权利看选举结果"); } else { if(vote) { out.print("您投了一票"); //将总票数加1. countTotal(); //通过连接数据库,给该候选人增加一票. //同时将自己的IP地址写入数据库. try { rs=statement.executeQuery("select * from people where name="+"'"+name+"'"); rs.next(); int count=rs.getInt("count"); count++; String condition="update people set count="+count+" where name="+"'"+name+"'"; //执行更新的操作(投票计数). statement.executeUpdate(condition); //将IP地址写入IP表. String to="insert into IP values"+"("+"'"+IP+"'"+")"; statement.executeUpdate(to); } catch(SQLException e) {} //显示投票后的表的记录. try { rs=statement.executeQuery("select * from people"); out.println("<table border>"); out.println("<tr>"); out.println("<th width=100>"+"姓名"); out.println("<th widht=50>"+"得票数"); out.println("<th widht=50>"+"总票数:"+total); out.println("</tr>"); while (rs.next()) { out.println("<tr>"); out.println("<td>"+rs.getString(1)+"</td>"); int count=rs.getInt("count"); out.print("<td>"+count+"</td>"); double b=(count*100)/total;//得票的百分比. out.println("<td>"+b+"%"+"</td>"); out.println("</tr>"); } out.print("</table>"); conn.close(); } catch(SQLException e) {} } else { out.println("您已经投过票了"); } } %> </html> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3.接上 [Re: SQL20000] | Copy to clipboard |
Posted by: SQL20000 Posted on: 2003-08-06 13:52 数据库是MYSQL 共有两个表. 一个是people(字段有name count) 另一个IP (字段IP) 运行程序结果如下图: 只出来了投票的总数并没有百分比. 而且也没有限制IP 求助.. |
4.接上 [Re: SQL20000] | Copy to clipboard |
Posted by: SQL20000 Posted on: 2003-08-06 14:01 还有一个调用数据库连接的文件. conn.jsp ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Connection conn; Statement stmt; try{ Driver driver = (Driver) Class.forName(driverClassName).newInstance(); DriverManager.registerDriver(driver); conn=DriverManager.getConnection("jdbc:mysql://"+dbhost+"/"+dbname,dbuser,dbpasswd); stmt=conn.createStatement(); } catch(Exception e){ out.println(e.toString()); e.printStackTrace(); return; } ResultSet rs=null; String sql,istype,type; %> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |