PHP+mysql开发的简单投票系统V.01前台实例说明文档
php+mysql开发的简单投票小系统共有四个文件,分别是配置文件(config.php),投票显示文件(index.php),后台控制文件(admin.php),数据库文件(vote.sql)。
如果要使用这个系统,首先需要配置config.php文件和导入.sql数据库,否则会出现无法找到数据源的错误,之前进行发布的源码有新手访问时出现错误,往往都是没有导入.sql数据库。数据库配置文件 config.php 要和自己本地的mysql信息对应起来即可,而如何导入.sql数据库,在之前本博客也有发布过相关教程,可以进行参考。
前台页面的显示和投票页面是 index.php,这里简要进行介绍一下
一:选择投票项目
进行投票必须要选择一项,否则会提示“您没有选择”,这个弹出框就是由JS来判断的,也就是下面这段JS代码了:
[cc lang="Javascript"]
[/code]
2,不能进行重复投票
当我们选择一项时进行投票时,这时会执行如下代码
<?php
if($_POST["submit"]){
if($_SESSION["vote"]==session_id())
{
?>
<script language="javascript">
alert("您已经投票了");
location.href="index.php";
</script>
<?php
exit();
}
$id=$_POST["itm"];
$sql="update vote set count=count+1 where id=$id";
if(mysql_query($sql))
{
$_SESSION["vote"]=session_id();
?>
<script language="javascript">alert("投票成功,点确定查看结果");
location.href="index.php?id=ck";</script>
<?php
}
else
{
?>
<script language="javascript">alert("投票失败");location.
href="index.php";</script>
<?php }
}
?>
在我们第一次投票时,会执行一句 $_SESSION["vote"]=session_id();,将用户session_id记录下来,这样就不会出现重复提交投票了,而我们再一次进行投票时,会首先判断是否已经进行投票了,如果 $_SESSION["vote"]==session_id() 为ture的话,也就是投票用户的 session_id 存在的话,提示“您已经投票了”!这种方式也是大多数网站投票系统使用的判断方法。
三,显示投票的项目
显示投票项目共有两个,一个是投票的标题,保存在数据表 votetitle 里面,投票项目保存在 vote 表里面,显示投票的项目就是将两个表里的数据利用SQL语句查询出来而已。。就是如下语句了:
<table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
<tr>
<th bgcolor="#FFFFCC">
<?php
$sql="select * from votetitle";
$rs=mysql_query($sql);
$row=mysql_fetch_assoc($rs);
echo $row["votetitle"];
?> </th>
</tr>
<?php
$sql="select * from vote";
$rs=mysql_query($sql);
while($rows=mysql_fetch_assoc($rs))
{
?>
<tr>
<td bgcolor="#FFFFFF"><input type="radio" name="itm" value="<?php echo $rows["id"]?>" /> <?php echo $rows["item"]?></td>
</tr>
<?php
}
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input type="submit" name="submit" value="投票"/>
<input type="button" value="查看结果" onClick="location.href='index.php?id=ck'" /></td>
</tr>
</table>
四:利用百分比显示投票结果
这是一个学习的重点,其原理无非就是先求得投票总数,然后去除以每一投票项目的票数即可。。这里的投票总数是以基数为100来计算的,这样就是100%了,显示百分比的进度是由一个图片来控制的,这个图片我们可以随意变化,只要将图片的宽度更改为 除以 百分比的基数100即可,也就是 width=" 这句了。。新手朋友可以仔细去理解这里的源码:
<?php
$sql="select sum(count) as 'total' from vote";
$rs=mysql_query($sql);
$rows=mysql_fetch_assoc($rs);
$sum=$rows["total"]; //得出总票数
$sql="select * from vote";
$rs=mysql_query($sql);
?>
<table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
<tr>
<th bgcolor="#FFFFFF">项目</th>
<th bgcolor="#FFFFFF">票数</th>
<th bgcolor="#FFFFFF">百分比</th>
</tr>
<?php
while($rows=mysql_fetch_assoc($rs))
{
?>
<tr>
<td bgcolor="#FFFFFF"><?php echo $rows["item"]?></td>
<td bgcolor="#FFFFFF"><?php echo $rows["count"]?></td>
<td bgcolor="#FFFFFF">
<?php
$per=$rows["count"]/$sum;
$per=number_format($per,4);
?>
<img src="100.jpg" height="4" width="<?php echo $per*100?>" />
<?php echo $per*100?>% </td>
</tr>
<?php
}
?>
</table>
<div align="center">
<a href="index.php">隐藏结果</a>
</div>
本说明文档对应的源码文件可到网上搜索夏日投票系统v.01版本。