网络编程
位置:首页>> 网络编程>> php编程>> PHP实战之投票系统的实现

PHP实战之投票系统的实现

作者:PHP开源社区  发布时间:2023-10-24 10:40:39 

标签:PHP,投票系统

一、实现代码

1.sql


-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 2022-03-28 05:42:05
-- 服务器版本:10.1.13-MariaDB
-- PHP Version: 5.6.21

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `a`
--

-- --------------------------------------------------------

--
-- 表的结构 `voto`
--

CREATE TABLE `voto` (
 `id` int(10) NOT NULL,
 `titleid` int(10) DEFAULT NULL,
 `item` varchar(50) DEFAULT NULL,
 `count` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 转存表中的数据 `voto`
--

INSERT INTO `voto` (`id`, `titleid`, `item`, `count`) VALUES
(24, 1, '张学友', 0),
(25, 1, '陈奕迅', 0),
(26, 1, '林俊杰', 0),
(27, 1, '萧敬腾', 0),
(29, 1, '', 0),
(30, 1, 'aaa', 0);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `voto`
--
ALTER TABLE `voto`
 ADD PRIMARY KEY (`id`);

--
-- 在导出的表使用AUTO_INCREMENT
--

--
-- 使用表AUTO_INCREMENT `voto`
--
ALTER TABLE `voto`
 MODIFY `id` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=31;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

2.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<body>
 <a href="admin.php" rel="external nofollow" >增删改查投票的选项</a>
<br>
 <a href="index.php" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >投票给谁呢</a>
</body>
</html>

3.admin.php(增删改查投票的页面)密码:admi

<?php
ob_start(); //打开缓冲区
session_start();
header("Content-type:text/html;charset=utf-8");

$link = mysqli_connect('localhost','root','','a');
mysqli_set_charset($link, "utf8");
if (!$link) {
 die("连接失败:".mysqli_connect_error());
}
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>PHP+mysql开发的简单投票系统</title>
 <style type="text/css">
   /*全局样式*/
   body { font-family: "宋体"; font-size: 12pt; color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;background-color: #d4d4d4;}
   table { font-family: "宋体"; font-size: 9pt; line-height: 20px; color: #333333}
   /*全局样式结束*/
</style>
 <script language="javascript">
   function selectAll()
{
     node=window.document.frm.itm;
     for(i=0;i<node.length;i++)
     {
       node[i].checked=true;//全选
     }
   }
   function cancelAll()
{
     node=frm.itm;
     for(i=0;i<node.length;i++)
     {
       node[i].checked=false;//取消全部
     }
   }
   function del()
{
     node=frm.itm;
     id="";
     for(i=0;i<node.length;i++)
     {
       if(node[i].checked)
       {
         if(id=="")//删除
         {
           id=node[i].value
         }
         else
         {
           id=id+","+node[i].value
         }
       }
     }
     if(id=="")
     {
       alert("您没有选择删除项");
     }
     else
     {
       location.href="?type=del&id=" rel="external nofollow" +id
     }
   }
</script>
</head>
<body>

<?php
if(isset($_GET['tj']) == 'out'){
 session_destroy();//删除当前用户对应的session文件以及释放session
 echo "<script language=javascript>alert('退出成功!');window.location='index.php'</script>";
}
?>

<?php
if(isset($_POST['Submit10'])){
 if($_POST['pwd']=='admin'){

   $_SESSION['pwd']=2;

   echo "<script language=javascript>alert('登陆成功!');window.location='admin.php'</script>";
 }else{
   echo "<script language=javascript>alert('登陆失败,请检查您的密码!');window.location='admin.php'</script>";
 }
}
?>

<?php if($_SESSION['pwd']<>2){ ?>
 <form action="" method="post">
   <table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
     <tr>
       <td height="30" align="right" bgcolor="#FFFFFF"><label>输入密码:</label></td>
       <td align="left" bgcolor="#FFFFFF"><input name="pwd" type="text" id="pwd" /></td>
     </tr>
     <tr>
       <td height="30" colspan="2" align="center" bgcolor="#FFFFFF"><label>
           <input name="Submit10" type="submit" id="Submit10" value="登陆" />
         </label>
         <label>  
           <input type="reset" name="Submit5" value="重置" />
         </label></td>
     </tr>
     <tr>
       <td height="30" colspan="2" align="center" bgcolor="#FFFFFF">
         软件版本:<script type="text/javascript" src="http://www.04ie.com/net/phpvoto1_1.js"></script></td>
     </tr>
   </table>
 </form>
<?php }else{ ?>
<?php
if(isset($_POST["Submit"]))
{
$title=$_POST["title"];
$sql="update vototitle set vototitle='$title'";
mysqli_query($link,$sql);
?>
 <script language="javascript">
   alert("修改成功");
</script>
<?php
}
if(isset($_POST["Submit2"]))
{
 $newitem=$_POST["newitem"];
 $sql="insert into voto (titleid,item,count) values (1,'$newitem',1)";
 mysqli_query($link,$sql);

}
?>
 <form id="frm" name="frm" method="post" action="" style="margin-bottom:3px;">
   <table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
     <tr>
       <td colspan="4" bgcolor="#FFFFFF"><label>
           <?php
           $sql="select * from vototitle";
           $rs=mysqli_query($link,$sql);
           $rows=mysqli_fetch_assoc($rs);
           ?>
           <input name="title" type="text" id="title" size="35" value="<?php echo $rows["vototitle"]?>" />
         </label></td>
       <td width="68" align="center" bgcolor="#FFFFFF"><label>
           <input type="submit" name="Submit" value="修改标题" />
         </label></td>
     </tr>
     <tr>
       <th width="30" bgcolor="#FFFFFF">编号</th>
       <th width="45" bgcolor="#FFFFFF">项目</th>
       <th width="52" bgcolor="#FFFFFF">票数</th>
       <th width="50" align="center" bgcolor="#FFFFFF">修改</th>
       <th align="center" bgcolor="#FFFFFF">删除</th>
     </tr>
     <?php
     $sql="select * from voto order by count desc";
     $rs=mysqli_query($link,$sql);
     while($rows=mysqli_fetch_assoc($rs))
     {
       ?>
       <tr>
         <td align="center" bgcolor="#FFFFFF"><input type="checkbox" name="itm" value="<?php echo $rows["id"]?>" /><?php echo $rows["id"]?></td>
         <td align="center" bgcolor="#FFFFFF"><?php echo $rows["item"]?></td>
         <td align="center" bgcolor="#FFFFFF"><?php echo $rows["count"]?></td>
         <td align="center" bgcolor="#FFFFFF"><input type="button" value="修改" onclick="location.href='?type=modify&id=<?php echo $rows["id"]?>'" /></td>
         <td align="center" bgcolor="#FFFFFF"><input type="button" value="删除" onclick="location.href='?type=del&id=<?php echo $rows["id"]?>'"  /></td>
       </tr>
       <?php
     }
     ?>
     <tr>
       <td colspan="5" align="center" bgcolor="#FFFFFF">
         <input type="button" value="选择全部" onclick="selectAll()" />
         <input type="button" value="取消全部" onclick="cancelAll()" />
         <input type="button" value="删除所选" onclick="del()" />   </td>
     </tr>
     <tr>
       <td colspan="3" bgcolor="#FFFFFF"><label>
           <input name="newitem" type="text" id="newitem" />
         </label></td>
       <td colspan="2" bgcolor="#FFFFFF"><label>
           <input type="submit" name="Submit2" value="添加新项" />
             </label>
         <a href="?tj=out" rel="external nofollow" >退出管理</a></td>
     </tr>
   </table>
 </form>

<?php
$type = isset($_GET["type"])?$_GET["type"]:"";
if($type =="modify"){

$id=$_GET["id"];
if(isset($_POST["Submit3"]))
{
 $item=$_POST["itm"];
 $count=$_POST["count"];
 $sql="update voto set item='$item',count=$count where id=$id";
 mysqli_query($link,$sql);
 echo "<script language=javascript>alert('修改成功!');window.location='admin.php'</script>";
}
$sql="select * from voto where id=$id";
$rs=mysqli_query($link,$sql);
$rows=mysqli_fetch_assoc($rs);
?>
 <form id="form1" name="form1" method="post" action="" style="margin-top:2px;">
   <table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
     <tr>
       <th colspan="2" bgcolor="#FFFFFF">修改投票项目</th>
     </tr>
     <tr>
       <td align="center" bgcolor="#FFFFFF">名称:</td>
       <td bgcolor="#FFFFFF"><label>
           <input name="itm" type="text" id="itm" value="<?php echo $rows["item"]?>" />
         </label></td>
     </tr>
     <tr>
       <td align="center" bgcolor="#FFFFFF">票数:</td>
       <td bgcolor="#FFFFFF"><label>
           <input name="count" type="text" id="count" value="<?php echo $rows["count"]?>" />
         </label></td>
     </tr>
     <tr>
       <td colspan="2" align="center" bgcolor="#FFFFFF"><label>
           <input type="submit" name="Submit3" value="修改" />
           <input type="reset" name="Submit" value="重置" />
         </label></td>
     </tr>
   </table>
 </form>

 <?php
}
 ?>
 <?php
 $type = isset($_GET["type"])?$_GET["type"]:"";
 if($type =="del"){
   $id=$_GET["id"];
   $sql="delete from voto where id in ($id)";
   mysqli_query($link,$sql);
   echo "<script language=javascript>alert('删除成功!');window.location='admin.php'</script>";
 }
 ?>
<?php } ?>
</body>
</html>

4.index.php投票的页面

<?php
ob_start();
session_start();
header("Content-type:text/html;charset=utf-8");

$link = mysqli_connect('localhost','root','','a');
mysqli_set_charset($link, "utf8");
if (!$link) {
 die("连接失败:".mysqli_connect_error());
}

?>
<!doctype html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>投票系统</title>
 <script type="text/javascript" src="//cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
 <style type="text/css">
   /*全局样式*/
   body { font-family: "宋体"; font-size: 12pt; color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;background-color: #A6C7E1;}
   table { font-family: "宋体"; font-size: 9pt; line-height: 20px; color: #333333}
   a:link { font-size: 9pt; color: #333333; text-decoration: none}
   a:visited { font-size: 9pt; color: #333333; text-decoration: none}
   a:hover { font-size: 9pt; color: #E7005C; text-decoration: underline}
   a:active { font-size: 9pt; color: #333333; text-decoration: none}
   /*全局样式结束*/
</style>
 <script language="javascript">
   function check()
{
     node=frm.itm;
     flag=false;
     for(i=0;i<node.length;i++)
     {
       if(node[i].checked)
       {
         flag=true;
       }
     }
     if(!flag)
     {
       alert("您没有选择")
       return false;
     }
     return true;
   }
</script>

 <?php

 if(isset($_POST["submit"])){

   if($_POST){
     $id = $_POST["selected_id"];
     $sql = "update voto set count = count+1 where id=$id";
     mysqli_query($link,$sql);

   }

   if($_SESSION["voto"]==session_id())
   {
     ?>
     <script language="javascript">
       alert("您已经投票了");
       location.href="index.php" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" ;
</script>
   <?php
   exit();
   }
   $id=$_POST["itm"];
   $sql="update voto set count=count+1 where id=$id";
   if(mysqli_query($link,$sql))
   {
   $_SESSION["voto"]=session_id();
   ?>
     <script language="javascript">alert("投票成功,点确定查看结果");location.href="index.php?id=ck" rel="external nofollow" ;</script>
   <?php
   }
   else
   {
   ?>
     <script language="javascript">alert("投票失败");location.href="index.php" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" ;</script>
     <?php
   }
 }
 ?>

</head>
<body>
<form name="frm" action="" method="post" onsubmit=return(check()) style="margin-bottom:5px;">
 <table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
   <tr>
     <th bgcolor="#FFFFCC">
       <?php
       $sql="select * from vototitle";
       $rs=mysqli_query($link,$sql);
       $row=mysqli_fetch_assoc($rs);
       echo $row["vototitle"];
       ?> </th>
   </tr>
   <?php
   $sql="select * from voto";
   $rs=mysqli_query($link,$sql);
   while($rows=mysqli_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="hidden" id="selected_id" name="selected_id" value="">
       <input type="button" value="查看结果" onClick="location.href='index.php?id=ck'"/>  
       <script type="text/javascript">
           $("[type='radio']").click(function(){
              $("#selected_id").val($(this).val());
           });
</script></td>
   </tr>
 </table>
</form>
<?php

if(isset($_GET["id"])=="ck"){?>
 <?php

 $sql="select sum(count) as 'total' from voto";
 $rs=mysqli_query($link,$sql);
 $rows=mysqli_fetch_assoc($rs);
 $sum=$rows["total"];  //得出总票数

 $sql="select * from voto";
 $rs=mysqli_query($link,$sql);
 ?>
 <table id="click" 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=mysqli_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="" height="4" width="<?php echo $per*100?>" />
         <?php echo $per*100?>%      </td>
     </tr>
     <?php
   }
   ?>
 </table>
 <div align="center">
   <a href="index.php" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >隐藏结果</a>
 </div>
<?php } ?>
</body>
</html>

二、效果图

PHP实战之投票系统的实现

PHP实战之投票系统的实现

来源:https://mp.weixin.qq.com/s/l8W06LxKIPhvZFtgMCnjfw

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com