加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

基于PHP怎样写一个容易的投票系统?

发布时间:2023-05-06 14:05:53 所属栏目:PHP教程 来源:
导读:本篇内容介绍了“基于PHP怎样写一个简单的投票系统?”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,
本篇内容介绍了“基于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="https://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>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!