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 StringAngel;
//得到投票人的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