|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
培训的第二阶段,开始了PHP语言语法结构和应用的学习。 有甚么成绩请与我接洽: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="http://www.webjx.com/htmldata/2005-03-04/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="http://www.webjx.com/htmldata/2005-03-04/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="http://www.webjx.com/htmldata/2005-03-04/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.";
}
好了全部法式到这就停止了,但愿您在看这个法式时能把握一些技能和学到一些常识。感谢!毕业设计作品自己个人还是觉得比较满意的,尽管有些功能考虑的不全面,也没有很好的实现。 |
|