文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP实战之投票系统的实现

2024-04-02 19:55

关注

一、实现代码

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";


;
;
;
;

--
-- 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;
;
;
;

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投票系统内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯