PHP实战之投票系统的实现

2022-09-03 16:09:57 59 0
魁首哥

目录

  • 一、实现代码
    • 1.sql
    • 2.html
    • 3.admin.php(增删改查投票的页面)密码:admi
    • 4.index.php投票的页面
  • 二、效果图

    一、实现代码

    1.sql

    -- phpMyAdmin SQL Dump
    -- version 4.5.1
    -- https://oss.qiaqa.com/article/2022/09/03/1166
    --
    -- 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=SzzQxcyQ"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投票系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    收藏
    分享
    海报
    0 条评论
    59
    上一篇:PHP实现文件上传和下载的示例代码 下一篇:基于PHP实现JWT登录鉴权的示例代码

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码