这篇文章主要为大家详细介绍了php查询操作实现投票功能的具体代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

 

本文实例为大家分享了php查询操作实现投票功能的代码,供大家参考,具体内容如下

题目:

解题方法汇总:

方法一:
1. 投票主页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>投票</title>
<style>
#list
{
  width:400px;
  height:300px;}
#jieguo
{
  width:400px;
  height:300px;}
.x
{
    
  float:left;}
  
</style>
</head>
  
<body>
  
<form action="TouChuLi.php" method="post">
<?php
include ("DBDA.class.php");
$db=new DBDA();
//从调研题目表中找出题目代号和名称
$sql="select * from diaoyantimu limit 0,1";
$arr=$db->query($sql);
$tmmc=$arr[0][1];
$tmdh=$arr[0][0];
echo "<div><h2>{$tmmc}:</h2></div>";
//从调研选项表中输出选项内容:
$sqlxx="select * from diaoyanxuanxiang where timudaihao='{$tmdh}'";
$arrxx=$db->query($sqlxx);
echo "<div id='list'>";
foreach ($arrxx as $v)
{
  echo "<div><input type='checkbox' value='{$v[0]}' name='xx[]'>{$v[1]}</div><br />";
}
  
?>
<input type="submit" value="提交">
<input type="button" value="查看结果" id="check" onclick="Showjieguo()">
</form>
</div>
  
<div id="jieguo" style="display:none">
<?php
//计算总人数:
$sqlzs="select sum(numbers) from diaoyanxuanxiang where timudaihao='{$tmdh}'";
$zrs=$db->query($sqlzs);
  
foreach ($arrxx as $v)
{
    
  $name=$v[1];
  $number=$v[2];
  if($zrs[0][0]==0)
   {
     $bfb = 0;
   }
   else
   {
     $bfb = ($number/$zrs[0][0])*100;
   }
  $bfb=round($bfb,2);
  echo "<div>
    <span class='x'>{$name} </span>
    <div class='x' style='width:200px; height:10px; background-color:#808080'>
    <div style='width:{$bfb}%; height:10px; background-color:#FF8040'> </div>
    </div>
    <span class='x'>{$number} </span>
    <span class='x'>{$bfb}% </span>
    </div>
    <br />
    ";
}
?>
<input type="button" value="返回" id="fanhui" onclick="Showfanhui()">
</div>
<script>
function Showjieguo()
{
  document.getElementById("list").style.display="none";
  document.getElementById("jieguo").style.display="block";
  }
function Showfanhui()
{
  document.getElementById("list").style.display="block";
  document.getElementById("jieguo").style.display="none";
  }
</script>
  
</body>
</html>

2.处理投票页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$arr=$_POST["xx"];
include ("../DBDA.class.php");
$db=new DBDA();
  
  
foreach($arr as $v)
{
  $sql = "update diaoyanxuanxiang set numbers = numbers+1 where ids = '{$v}'";
  $db->Query($sql,1);//1代表$sql的类型
}
header ("location:TouPiao.php");
?>

3. 建立访问数据库的类,封装用于引用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
//执行一个sql语句,返回相应的结果
class DBDA
{
  public $host="localhost";//数据库服务器地址
  public $uid="root";//数据库用户名
  public $password="";//数据库密码
  //执行SQL语句的方法
  //参数里面:$sql代表要执行的sql语句;$type是sql语句的类型,0代表查询,1代表其他(增删改);$db代表要操作的数据库
  function Query($sql,$type=0,$db="mydb")
  {
    //造连接对象
    $dbconnect=new MySQLi($this->host,$this->uid,$this->password,$db);
    //判断连接是否出错
    !mysqli_connect_error() or die("连接失败!");
    //执行sql语句
    $result=$dbconnect->query($sql);
    //判断SQL语句类型
    if($type==0)
    {
       //如果是查询语句返回结果集的二维数组
      return $result->fetch_all();
      }
    else
    {
      //如果是其他语句,返回true或false
      return $result;
      }  
    }
      
  }

方法二:

1. 投票主页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>投票</title>
<style>
.x
{
    
  float:left;}
  
</style>
</head>
  
<body>
  
<form action="TouChuLi.php" method="post">
<?php
include ("../DBDA.class.php");
$db=new DBDA();
//从调研题目表中找出题目代号和名称
$sql="select * from diaoyantimu limit 0,1";
$arr=$db->query($sql);
$tmmc=$arr[0][1];
$tmdh=$arr[0][0];
echo "<div><h2>{$tmmc}:</h2></div>";
//从调研选项表中输出选项内容:
$sqlxx="select * from diaoyanxuanxiang where timudaihao='{$tmdh}'";
$arrxx=$db->query($sqlxx);
echo "<div id='list'>";
foreach ($arrxx as $v)
{
  echo "<div><input type='checkbox' value='{$v[0]}' name='xx[]'>{$v[1]}</div><br />";
}
  
?>
<input type="submit" value="提交">
<a href="ChaKan.php"><input type="button" value="查看结果" id="check" ></a>
</form>
</body>
</html>

2. 处理投票页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$arr=$_POST["xx"];
include ("../DBDA.class.php");
$db=new DBDA();
  
  
foreach($arr as $v)
{
  $sql = "update diaoyanxuanxiang set numbers = numbers+1 where ids = '{$v}'";
  $db->Query($sql,1);//1代表$sql的类型
}
header ("location:TouPiao.php");
?>

3. 查看投票结果页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>查看结果</title>
<style>
.x
{
  float:left;}
</style>
</head>
<body>
  
<?php
include ("../DBDA.class.php");
$db=new DBDA();
//从调研题目表中找出题目代号和名称
$sql="select * from diaoyantimu limit 0,1";
$arr=$db->query($sql);
$tmmc=$arr[0][1];
echo "<div><h2>{$tmmc}:</h2></div>";
//从调研选项表中输出选项内容:
$sqlxx="select * from diaoyanxuanxiang where timudaihao='{$arr[0][0]}'";
$arrxx=$db->query($sqlxx);
  
//计算总人数:
$sqlzs="select sum(numbers) from diaoyanxuanxiang where timudaihao='{$arr[0][0]}'";
$zrs=$db->query($sqlzs);
  
foreach ($arrxx as $v)
{
   $name=$v[1];//调研项目名称
   $number=$v[2];//选择该项的人数
   //判断总人数是否为0
   if($zrs[0][0]==0)
   {
     $bfb = 0;
   }
   else
   {
     $bfb = ($number/$zrs[0][0])*100;//求百分比
   }
    
  $bfb=round($bfb,2); //取小数点后两位
  echo "<div>
  <span class='x'>{$name} </span>
  <div class='x' style='width:200px; height:10px; background-color:#808080'>
  <div style='width:{$bfb}%; height:10px; background-color:#FF8040'> </div>
  </div>
  <span class='x'>{$number} </span>
  <span class='x'>{$bfb}%</span><br />
  </div><br />";
}
?>
<br />
<a href="TouPiao.php"><input type="button" value="返回"></a>
</body>
</html>

显示结果:

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

php查询操作实现投票功能的更多相关文章

  1. C#3.0新增功能09 LINQ 基础04 基本 LINQ 查询操作

    连载目录    [已更新最新开发文章,点击查看详细] 本篇介绍 LINQ 查询表达式和一些在查询中执行的典型操作. 获取数据源 在 LINQ 查询中,第一步是指定数据源. 和大多数编程语言相同,在使用 ...

  2. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  3. MongoDB的查询操作

    1. 前言 在这篇博文中,我们将学习如何查询mongoDB中的数据.当我们把数据存储在mongoDB以后,我们需要把数据查询出来.毕竟CRUD操作中,查询操作在我们系统中是我们应用比较频繁的操作.我们 ...

  4. Django 1.10 中文文档------3.2.2 查询操作making queries

    3.2.2 查询操作 6.15章节包含所有模型相关的API解释. 后面的内容基于如下的一个博客应用模型: from django.db import models class Blog(models. ...

  5. .NET LINQ基本查询操作

    获取数据源      在 LINQ 查询中,第一步是指定数据源.像在大多数编程语言中一样,在 C# 中,必须先声明变量,才能使用它.在 LINQ 查询中,最先使用 from 子句的目的是引入数据源 ( ...

  6. Linq查询操作之Where筛选

    筛选操作where能够处理逻辑运算符组成的逻辑表达式.比如逻辑“与”,逻辑“或”,并从数据源中筛选数据,它和where子句的功能非常相似.Enumerable类的Where()原型如下: public ...

  7. OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)

    公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...

  8. MongoDB源码分析——mongod数据查询操作

    源码版本为MongoDB 2.6分支 Edit mongod数据查询操作 在mongod的初始化过程中说过,服务端接收到客户端消息后调用MyMessageHandler::process函数处理消息. ...

  9. 查询操作 -- Django从入门到精通系列教程

    该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...

随机推荐

  1. vue分享插件

    vshare 基于百度分享开发的支持VUE2.X的分享插件,为您带来更多的流量!提供多种风格按钮,代码加载更快,引入社会化流量,提升网页抓取速度等优点.github地址:https://github. ...

  2. [转]wait,notify,notifyAll,join,yield,sleep的区别和联系

    1.  Thread.sleep(long) 和Thread.yield()都是Thread类的静态方法,在调用的时候都是Thread.sleep(long)/Thread.yield()的方式进行调 ...

  3. Elasticsearch 5

    Elasticsearch 5常见问题解决方案     安装运行 1.前置安装java8 jdk-8u112-linux-x64.rpm 下载地址:http://www.oracle.com/tech ...

  4. Entity Framework表拆分

    一.概念 表拆分:一个表拆分成多个实体,例如Photograph表,可以拆分为Photograph和PhotographFullImage两张表. Photograph实体结构: using Syst ...

  5. Windows消息目录

    Windows消息目录1. WM_NULL=$0000:2. WM_CREATE=$0001: 应用程序创建一个窗口3. WM_DESTROY=$0002: 一个窗口被销毁4. WM_MOVE=$00 ...

  6. 21个最佳jQuery插件推荐

    在Javascript应用领域上,使用jQuery可以制作出非常优秀的动画效果,滑块.滑球,以及各种不同的应用.精选出21个最佳的精典案例,如果你是一个前端设计师,一定不要错过. Supersized ...

  7. C++ 类的隐式转换

    所谓类的隐式转换,就是将实参类型转成形参类型--如果不一致的话. 这个转换与基本类型转换不太一样,具体则是在形参类型的构造函数中使用实参类型的数据,从而构造出一个临时对象. 下面的代码,类Person ...

  8. Blend for Visual Studio 2013

    软件开发中为了使设计师和程序员“并行”工作并直接参与到程序的开发中来. 1.在网络程序开发团队中,草图设计后,设计师们可以使用HTML.CSS.JavaScript直接生成UI,程序员则在这个UI产生 ...

  9. JS中setInterval、setTimeout不能传递带参数的函数的解决方法

    setInterval 和 setTimeout 这两个函数比较好用,但会遇到比如说我隔个几秒后要执行的函数是带参数的,这种情况怎么办?可以用匿名函数包装处理 //不带参数的函数 function t ...

  10. linux -- ubuntu 脚本开机自启动

    有一个脚本想在ubuntu 虚拟机开机时,自动运行. 创建脚本文件 在“/opt/lampp/”下新建一个脚本文件:lampp_start.sh #!/bin/bash /opt/lampp/lamp ...