海妖 发表于 2015-2-16 00:24:38

PHP网站制作之用PHP来制造查询拜访

培训的第二阶段,开始了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.";

}

  好了全部法式到这就停止了,但愿您在看这个法式时能把握一些技能和学到一些常识。感谢!毕业设计作品自己个人还是觉得比较满意的,尽管有些功能考虑的不全面,也没有很好的实现。

飘灵儿 发表于 2015-2-16 01:10:44

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

活着的死人 发表于 2015-2-26 10:33:48

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

小女巫 发表于 2015-3-1 01:27:49

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

爱飞 发表于 2015-3-8 16:59:08

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

愤怒的大鸟 发表于 2015-3-16 06:21:01

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

再现理想 发表于 2015-3-22 20:28:00

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

透明 发表于 2015-3-27 05:09:26

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

山那边是海 发表于 2015-4-14 07:06:46

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

admin 发表于 2015-4-14 07:30:12

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

乐观 发表于 2015-4-17 06:25:25

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

若天明 发表于 2015-5-2 13:24:42

本文当是我的笔记啦,遇到的问题随时填充

小妖女 发表于 2015-5-6 16:56:26

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

不帅 发表于 2015-6-14 00:55:53

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

深爱那片海 发表于 2015-6-27 21:49:09

爱上php,他也会爱上你。

金色的骷髅 发表于 2015-6-30 00:31:04

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

因胸联盟 发表于 2015-7-1 22:00:39

爱上php,他也会爱上你。

只想知道 发表于 2015-7-9 23:23:04

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

仓酷云 发表于 2015-7-10 05:49:21

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
页: [1]
查看完整版本: PHP网站制作之用PHP来制造查询拜访