分享
 
 
 

用PHP来制作调查

王朝php·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

有什么问题请与我联系:http://www.webjx.com web@webjx.com

转载请注明出处

今天给大家讲一个如何用PHP做调查的例子,通过这个例子你可以学会如何用PHP和MYSQL来实现编程,这个例子不难,希望您能有收获。

首先创建一个MYSQ

数据库的表,表中具体包括的字段及设置如下:

# Table structure for table poll_data

#

CREATE TABLE poll_data (

ID tinyint(4) NOT NULL auto_increment,

Option1 tinyint(4) NOT NULL default '0',

Option2 tinyint(4) NOT NULL default '0',

Option3 tinyint(4) NOT NULL default '0',

Votes tinyint(4) NOT NULL default '0',

Title varchar(25) NOT NULL default '',

Question varchar(50) NOT NULL default '',

PRIMARY KEY (ID)

) TYPE=MyISAM;

建立好了数据库表之后,我们就要开始写代码来解决这个问题了。通常我们解决一个问题,愿意把这个问题分解,从而可以各个击破,以至于整个问题得到解决。下面我们就利用这种方法来编写程序代码。

这个调查的主要功能是:

1.显示调查的标题和调查的问题。

2.显示每个投票项目的标题, 总投票的百分数, 每个项目的投票的百分数。

3.创建一个允许在调查中投票的程序文件。

下面我们把问题分解一下:

1.显示调查的标题和调查的问题。

a. 连接数据库代码

b. 从数据库中选择最新的记录。

2.显示每个投票项目的标题, 总投票的百分数, 每个项目的投票的百分数。

a. 为每个项目能选择投票数,并且能在调查中显示总的投票数。

b. 投票数和总数相除能够得出百分数。

3.创建一个允许在调查中投票的程序文件。

a. 用户投票之后结果要更新

我们使用一些变量来帮助我们连接数据库。代码如下:

$dbhost = "localhost";

$dbname = "YourDataBase";

$dbuser = "YourUserName";

$dbpass = "YourPass";

然后我们开始连接数据库:

$link_id = mysql_connect($dbhost, $dbuser, $dbpass);

mysql_select_db($dbname);

现在我们所做的就是具体有关数据库的内容了,要求数据库能自动增加记录,并且程序取出的是最新的记录,ID能自动升序,数据库代码如下:

$sql = "SELECT `Title`,`Question`,`ID` FROM `poll_data` ORDER BY `ID` DESC LIMIT 1";

if(!($result = mysql_query($sql))) die(mysql_error());

$PollData = mysql_fetch_array($result)

下面我们来具体选择投票的项目和计算具体的百分数!

$sql = "SELECT `Option1`,`Option2`,`Option3`,`Votes` FROM `poll_data` WHERE `ID` = '" . $PollData['ID'] . "' ORDER BY `ID` DESC LIMIT 1";

if(!($result = mysql_query($sql))) die(mysql_error());

if(!($VoteData = mysql_fetch_array($result))) die(mysql_error());

现在我来具体实现百分数的代码,当然我们这的百分数为了显示更加具体形象,可以显示图形来代替!

if($VoteData["Option1"] != 0) {

$VotePercent1 = Round(($VoteData["Option1"] / $VoteData["Votes"]) * 100) . "%";

} else {

$VotePercent1 = 0 ."%";

}

if($VoteData["Option2"] != 0) {

$VotePercent2 = Round(($VoteData["Option2"] / $VoteData["Votes"]) * 100) . "%";

} else {

$VotePercent2 = 0 ."%";

}

if($VoteData["Option3"] != 0) {

$VotePercent3 = Round(($VoteData["Option3"] / $VoteData["Votes"]) * 100) . "%";

} else {

$VotePercent3 = 0 ."%";

}

我们这步做一个20象素高1象素宽的任何颜色的图片。我们设置代码来用图象表示百分数:

<html>

<head>

<title>Basic Poll - Written by webjx.com</title>

</head>

<body>

<form method="POST" action="vote.php">

<table width="500" border="1" cellspacing="0" cellpadding="8">

<tr>

<td colspan="3"><b><?=$PollData['Title']?> - <?=$PollData['Question']?></b></td>

</tr>

<tr>

<td width="35%">

<input type="radio" name="Vote" value="Option1">

Yes</td>

<td width=60%>

<img src="bar.gif" width="<?=$VotePercent1?>" height="20">

</td>

<td><?=$VoteData["Option1"]?> Votes</td>

</tr>

<tr>

<td width="35%">

<input type="radio" name="Vote" value="Option2">

No </td>

<td width=60%>

<img src="bar.gif" width="<?=$VotePercent2?>" height="20">

</td>

<td><?=$VoteData["Option2"]?> Votes</td>

</tr>

<tr>

<td width="35%">

<input type="radio" name="Vote" value="Option3" >

Not Sure</td>

<td width="60%">

<img src="bar.gif" width="<?=$VotePercent3?>" height="20">

</td> <td><?=$VoteData["Option3"]?> Votes</td>

</tr>

<tr>

<td colspan="3">

<center>

<input type="submit" name="Submit" value="Vote">

</center>

</td>

</tr>

</table>

</form>

</body>

</html>

现在我们来设置用户的投票的代码,当有投票之后,我们就自动计算百分数,和更新数据库,我们使用一个变量来接收投票: $_POST.

if(empty($_POST["Vote"])) die("You did not enter your vote");

我们选择表中的最新的记录 。

$dbhost = "localhost";

$dbname = "misc";

$dbuser = "root";

$dbpass = "trigger";

$link_id = mysql_connect($dbhost, $dbuser, $dbpass);

mysql_select_db($dbname);

$sql = "SELECT `Option1`,`Option2`,`Option3`,`Votes`,`ID` FROM `poll_data` ORDER BY `ID` DESC LIMIT 1";

if(!($result = mysql_query($sql))) die(mysql_error());

if(!($PollData = mysql_fetch_array($result))) die(mysql_error());

我们更新数据表中的记录。我们设置1为当前的投票数, 总的投票数也设置为1. 然后我们通过程序来实现把提交的数据来更新数据表中的记录:

if($_POST["Vote"] == "Option1") {

$Votes1 = $PollData["Option1"] + 1;

$TotalVotes = $PollData["Votes"]+ 1;

$sql = "UPDATE `poll_data` SET `Option1`='$Votes1', `Votes`='$TotalVotes' WHERE `ID` = '". $PollData['ID'] . "' LIMIT 1";

if(!($result = mysql_query($sql))) die(mysql_error());

echo "Vote successful! <a href=\"index.php\">Back</a> to the poll.";

}

else if ($_POST["Vote"] == "Option2"){

$Votes2 = $PollData["Option2"] + 1;

$TotalVotes = $PollData["Votes"]+ 1;

$sql = "UPDATE `poll_data` SET `Option2`='$Votes2', `Votes`='$TotalVotes' WHERE `ID` = '". $PollData['ID'] . "' LIMIT 1";

if(!($result = mysql_query($sql))) die(mysql_error());

echo "Vote successful! <a href=\"index.php\">Back</a> to the poll.";

}

else {

$Votes3 = $PollData["Option3"] + 1;

$TotalVotes = $PollData["Votes"] + 1;

$sql = $sql = "UPDATE `poll_data` SET `Option3`='$Votes3', `Votes`= '$TotalVotes' WHERE `ID` = '". $PollData['ID'] . "' LIMIT 1";

if(!($result = mysql_query($sql))) die(mysql_error());

echo "Vote successful! <a href=\"index.php\">Back</a> to the poll.";

}

好了整个程序到这就结束了,希望您在看这个程序时能掌握一些技巧和学到一些知识。谢谢!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有