程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 之 查詢 投票練習(0508),php0508

php 之 查詢 投票練習(0508),php0508

編輯:關於PHP編程

php 之 查詢 投票練習(0508),php0508


練習題目:

解題:

方法一:

1. 投票主頁面:

<!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>
#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"><?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. 建立訪問數據庫的類,封裝用於引用:

<?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. 投票主頁面:

<html xmlns="http://www.w3.org/1999/xhtml">
<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. 處理投票頁面:

<?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. 查看投票結果頁面:

<!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>
.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>

  

 

網頁顯示結果:

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved