php如何调查,用PHP来制作调查_PHP

这篇博客介绍了如何使用PHP和MySQL构建一个简单的在线调查系统。首先,创建了一个包含选项和投票计数的数据库表。接着,通过PHP代码连接数据库,获取最新调查并计算每个选项的百分比。用户投票后,程序会更新数据库中的投票记录,并实时更新百分比。该教程涵盖了数据库交互、数据计算和用户交互的基本概念。
摘要由CSDN通过智能技术生成

用PHP来制作调查_PHP

今天给大家讲一个如何用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象素宽的任何颜色的图片。我们设置代码来用图象表示百分数:

Basic Poll - Written by webjx.com

现在我们来设置用户的投票的代码,当有投票之后,我们就自动计算百分数,和更新数据库,我们使用一个变量来接收投票: $_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! Back 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! Back 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! Back to the poll.";

}

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

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值