A-A+

PHP+mysql开发的简单投票系统V.01前台实例说明文档

2012年04月13日 PHP技术文章 暂无评论 阅读 286 views 次

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&#91;"submit"&#93;){   
 if($_SESSION&#91;"vote"&#93;==session_id())   
 {   
  ?>   
  <script language="javascript">   
   alert("您已经投票了");   
   location.href="index.php";   
  </script>   
  <?php   
  exit();   
 }   
 $id=$_POST&#91;"itm"&#93;;   
 $sql="update vote set count=count+1 where id=$id";   
 if(mysql_query($sql))   
 {   
  $_SESSION&#91;"vote"&#93;=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&#91;"votetitle"&#93;;   
 ?> </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&#91;"id"&#93;?>" />  <?php echo $rows&#91;"item"&#93;?></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&#91;"total"&#93;;  //得出总票数   
 $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&#91;"item"&#93;?></td>   
  <td bgcolor="#FFFFFF"><?php echo $rows&#91;"count"&#93;?></td>   
  <td bgcolor="#FFFFFF">   
   <?php   
    $per=$rows&#91;"count"&#93;/$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版本。

标签:

给我留言