PHP投票实例

首先在数据库中存入问题:

调研题目可能有多个 ,所以题目与选项应该份两个数据表存储,选项表可以存入题目的主键值timudaihao与题目表联系起来。

 1 <h1>调研题目</h1>
 2     <form action="./submit.php" method="post">
 3         <div>
 4             <?php
 5                 require_once "../DBDA.class.php";
 6                 $db = new DBDA();
 7                 $sql = "select * from DiaoYanTiMu";
 8                 $arr = $db->query($sql);
 9                 foreach($arr as $v){
10                     echo "{$v[0]}.{$v[1]}";                
11                 }
12                 $sql = "select * from DiaoYanXuanXiang where TiMuDaiHao = (select Ids from DiaoYanTiMu)";
13                 $arr = $db->query($sql);
14                 
15                 foreach($arr as $v){
16                     
17                     echo "<br />
18                     <div>
19                         <input class='sub' type='checkbox' name='checked[]' value='{$v[0]}'/>
20                         {$v[1]}
21                     </div>";
22                 }
23             ?>
24         </div>
25         <br />
26         <input type="submit" value="提交结果" />
27        
28     </form>

显示效果如图:

处理页面思路很简单,只需获取被选中的选项,让其本身数量+1即可记录投票数:

 1 <?php
 2 
 3 $checked = $_POST["checked"];
 4 $str = implode(",",$checked);
 5 
 6 
 7 require_once "./DBDA.class.php";
 8 $db = new DBDA();
 9 $sql= "update DiaoyanXuanXiang set numbers= numbers+1 where ids in ({$str})";
10 $result = $db->query($sql,1);
11 if($result){
12     header("location:jieguo.php");
13 }
14 
15 
16 ?>

投完票后把结果显示在结果页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>结果</title>
<style>
    .box{ width:250px; height:20.8px;}
    .display{ width:200px; height:18px; border:1px solid red; float:left }
    .percent{ height:18px; background-color:red; float:left}
    
</style>
</head>

<body>
<h1>调研结果</h1>
    
            <?php
            
                require_once "../DBDA.class.php";
                $db = new DBDA();
                $sql = "select * from DiaoYanTiMu";
                $arr = $db->query($sql);
                foreach($arr as $v){
                    echo "{$v[0]}.{$v[1]}";                
                }
                $sql = "select * from DiaoYanXuanXiang where TiMuDaiHao = (select Ids from DiaoYanTiMu)";
                $arr = $db->query($sql);
                
                $sql1= "select numbers from DiaoYanXuanXiang where TiMuDaiHao = (select Ids from DiaoYanTiMu)";
                $arr1= $db->query($sql1);
                $sum = 0;
                foreach($arr1 as $v){
                    foreach($v as $v1){
                        $sum = $sum + $v1;                        
                    }    
                }
                //var_dump($arr1);
                /*foreach($arr1 as $v){
                    $arr2 = $v[0];
                }
                foreach($arr2 as $key=>$item){
                        
                }*/
                //var_dump($item);
                foreach($arr as $v){
                    $num = (int)$v[2];
                    $per = round($num / $sum *100,2);
                    echo "<br />
                    <div>
                        {$v[1]}
                    </div>
                    <div class='box' >
                        <div class='display' >
                            <div class='percent' style='.{$v[2]}%'></div>
                        </div>
                        <div class='num'>{$v[2]}($per%)</div>
                    </div>";
                        //var_dump($num,$sum,$arr,$per);
                }
            
            ?>
        
        <br />
        <a href="./diaoyan.php"><button>返回</button></a>
    
</body>
</html>
原文地址:https://www.cnblogs.com/rose1324/p/8573678.html