设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 公司 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-02-03 11:14 所属栏目:121 来源:未知
导读:本篇内容介绍了基于PHP怎样写一个简单的投票系统?的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 实现代码 1.sql -- phpMyAdmin SQL Dump
  本篇内容介绍了“基于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>
 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读