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版本。