zoukankan      html  css  js  c++  java
  • 5月8 调研投票练习题

    要求操作数据库:因此自己要先创建数据库,数据库的类型及其要求如下图所示:

    需要用之前封装好的类:在test0506下DBDA.class.php

    <?php
    class DBDA
    
    {
    	public $host = "localhost";//数据库地址
    	public $uid = "root";//数据库用户名
    	public $pwd = "";//数据库密码
    	
    	//执行SQL语句,返回相应的方法
    	//参数:$sql代表要执行的SQL语句,$type是SQL语句类型0代表查询1代表其他,$db代表要操作的数据库
    	public function Query($sql,$type=0,$db="mydb")//经常操作的数据库名称
    	{
    		//造连接对象
    		$dbconnect = new MySQLi($this->host,$this->uid,$this->pwd,$db);	
    		//判断连接是否有误
    		!mysqli_connect_error() or die("连接失败");
    		//执行SQL语句
    		$result = $dbconnect->query($sql);
    		
    		if($type==0)//查询时肯定是返回数组的
    		{
    			return $result->fetch_all();
    		}
    		else//增删改时只看看执行是否成功即可
    		{
    			return $result;	
    		}
    	}	
    }
    

     在上一级的类的加载:include("../test0506/DADB.php"); 

    <title>投票</title>
    <style type="text/css">
    #list{ 250px; height:200px}
    
    #jieguo{ 250px; height:200px}
    
    .x{ float:left}
    </style>
    </head>
    
    <body>
    <form action="chuli.php" method="post">
    <?php
    include("../test0506/DBDA.class.php");
    $db = new DBDA();
    
    $sql = "select * from diaoyantimu limit 0,1";
    $attr = $db->Query($sql);
    //var_dump($attr);
    
    $tmmc = $attr[0][1];
    $tmdh = $attr[0][0];
    
    echo "<div>题目名称:{$tmmc}</div>";
    
    $sqlxx = "select * from DiaoYanXuanXiang where TiMuDaiHao = '{$tmdh}'";
    $attrxx = $db->Query($sqlxx);
    //var_dump($attrxx);
    //echo "<div>题目代号:{$tmdh}</div>"
    
    echo "<div id='list'>";
    foreach($attrxx as $v)
    {
    	echo "<div>
    		<input type='checkbox' value='{$v[0]}' name='name[]' />
    		<span>{$v[1]}</span>
    		</div>";	
    }
    
    ?>
    
    <input type="submit" value="提交"  />
    <input type="button" value="查看结果" id="check" onclick="ShowJieGuo()" />
    </form>
    </div>
    
    <div id="jieguo" style="display:none">
    
    <?php
    $sqlsum = "select sum(Numbers) from DiaoYanXuanXiang where TiMuDaiHao = '{$tmdh}'";
    $attrsum = $db->Query($sqlsum);//所有的人数
    
    //var_dump($attrsum);//$attrsum[0][0]
    
    foreach($attrxx as $v)
    {
    	//选项名称
    	$name = $v[1];
    	//投票人数
    	$shumu = $v[2];
    	$bfb = ($shumu/$attrsum[0][0])*100;//得票的百分比
    	$bfb = round($bfb,2);
    	
    	echo "<div style='250px; height:30px'>
    		<span class='x'>{$name}</span>
    		<div class='x' style='100px; height:8px; border:1px solid red'>
    		<div style='{$bfb}%; height:8px; background-color:red'></div>
    		</div>
    		<span class='x'>{$shumu} </span>
    		<span class='x'>{$bfb}%</span>
    		</div>";
    }
    
    ?>
    <input type="button" value="返回" id="fanhui" onclick="ShowList()"/>
    </div>
    </body>
    <script type="text/javascript">
    function ShowJieGuo()
    {
    	document.getElementById("list").style.display = "none";
    	document.getElementById("jieguo").style.display = "block";	
    }
    function ShowList()
    {
    	document.getElementById("list").style.display = "block";
    	document.getElementById("jieguo").style.display = "none";	
    }
    
    </script>
    </html>
    

      

    处理页面:chuli.php  依旧需要类的加载

    <?php
    	
    $attr = $_POST["name"];
    include("../test0506/DBDA.class.php");
    $db = new DBDA();
    
    foreach($attr as $v)
    {
    	$sql = "update DiaoYanXuanXiang set Numbers = Numbers+1 where Ids = '{$v}'";
    	$db->Query($sql,1);	
    }
    	header("location:toupiao.php");
    	
    

                                                    

    需要注意的:checkbox是可以多选的

    另一个方法是在自己练习的基础上的完善:没有加载类,是页面的跳转,不建议使用

    主页面------DiaoYan.php

    <title>调研练习</title>
    </head>
    
    <body>
    <form action="DYchuli.php" method="post">
    
    <?php
    
    //造连接对象
    $db = new MySQLi("localhost","root","","mydb");
    //判断连接是否成功
    !mysqli_connect_error() or die("连接失败");
    //写SQL语句
    $sql = "select * from diaoyantimu";
    //执行SQL语句
    $result = $db->query($sql);
    //从结果集中读取数据
    $attr = $result->fetch_all();
    //var_dump($attr);
    
    $tmmc = $attr[0][1];
    $tmdh = $attr[0][0];
    
    echo "<div>题目名称:{$tmmc}</div>";
    
    $sqlxx = "select * from DiaoYanXuanXiang where TiMuDaiHao = '{$tmdh}'";
    $resultxx = $db->query($sqlxx);
    $attrxx = $resultxx->fetch_all();
    //var_dump($attrxx);
    foreach($attrxx as $v)
    {
    	echo "<div><input type='checkbox' value='{$v[0]}' name='xx[]'>{$v[1]}</div>";	
    }
    
    ?>
    <br />
    
    <input type="submit" value="提交" /> 
    <a href="tijiao.php"><input type="button" value="查看" /></a>
    </form>
    </body>
    </html>
    

      显示效果

     

    处理页面------DYchuli.php

    <?php
    
    $attr = $_POST["xx"];//选项ids代号
    
    $db = new MySQLi("localhost","root","","mydb");
    !mysqli_connect_error() or die("连接失败");
    
    foreach($attr as $v)
    {
    	$sql = "update DiaoYanXuanXiang set Numbers = Numbers+1 where Ids = '{$v}'";
    	$result = $db->query($sql);
    	if($result)
    	{
    		header("location:tijiao.php");	
    	}
    	else
    	{
    		echo "投票失败";	
    	}
    }
    

      

    结果显示的页面-------tijiao.php

    <title>无标题文档</title>
    <style type="text/css">
    .x{ float:left}
    </style>
    </head>
    
    <body>
    <?php
    
    //造连接对象
    $db = new MySQLi("localhost","root","","mydb");
    !mysqli_connect_error() or die("连接失败");
    $sql = "select * from diaoyantimu";
    $result = $db->query($sql);
    $attr = $result->fetch_all();
    //var_dump($attr);
    
    $tmmc = $attr[0][1];
    $tmdh = $attr[0][0];
    echo "<div>题目名称:{$tmmc}</div>";
    
    $sqlxx = "select * from DiaoYanXuanXiang where TiMuDaiHao = '{$tmdh}'";
    $resultxx = $db->query($sqlxx);
    $attrxx = $resultxx->fetch_all();
    //var_dump($attrxx);
    
    $sqlsum = "select sum(Numbers) from DiaoYanXuanXiang where TiMuDaiHao = '{$tmdh}' ";
    $resultsum = $db->query($sqlsum);
    $attrsum = $resultsum->fetch_all();
    //var_dump($attrsum);
    $sum = $attrsum[0][0];//总人数
    
    foreach($attrxx as $v)
    {
    	//选项名称
    	$name = $v[1];
    	//投票人数
    	$ren = $v[2];
    	if($sum==0)
    	{
    		echo $bfb=0;	
    	}
    	else
    	{
    		$bfb = ($ren/$sum)*100;
    		$bfb = round($bfb,2);
    	}
    	echo "<div style='350px; height:30px'>
    		<span  class='x'>{$name}</span>
    		<div  class='x' style='100px; height:8px; border:1px solid red'>
    		<div style='{$bfb}%; height:8px; background-color:red'></div>
    		</div>
    		<span  class='x'>{$ren} </span>
    		<span  class='x'>{$bfb}%</span>
    		</div>";	
    }
    ?>
    
    <br />
    <form action="DYchuli.php" method="post">
    <a href="DiaoYan.php"><input type="button" value="返回" /></a>
    </form>
    </body>
    </html>
    

      页面显示效果:

  • 相关阅读:
    centos7安装node.js
    docker容器互联,实现目录、服务共享
    解决docker容器中Centos7系统的中文乱码
    修改centos7容器的时间和宿主机时间一致
    linux安装中文字体
    制作OpenOffice的Docker镜像并添加中文字体解决乱码问题
    centos容器yum安装JDK环境
    函数装饰器
    nc(NetCat)命令
    Linux源码包安装程序
  • 原文地址:https://www.cnblogs.com/Duriyya/p/5470787.html
Copyright © 2011-2022 走看看