<?php
//用COOKIE保存投票人的投票记录
if($vote && !$already_voted) SetCookie("already_voted","1");
?>
<html>
<head>
<title>简易投票系统</title>
</head>
<body alink="#FF0000" link="#000099" vlink="#CC6600" topmargin="8" leftmargin="0" bgColor="#FFFFFF">
<br><center><font color=green>简易投票系统-学习PHP 4.0容易吗?</font></center><br>
<table cellspacing=0 bordercolordark=#FFFFFF width="60%" bordercolorlight=#000000 border=1 align="center" cellpadding="2">
<tr>
<td align="center">
<form action="<?php echo $PHP_SELF?>" method="post" name="frmVote">
<br>添加一个投票类别:
<input type="text" name="newvoteitem" size="20" maxlength="30">
<input type=submit value="添 加">
<br><br>
<?php
//连接数据库
mysql_connect("localhost","root","");
$mysqldb="test";
if($newvoteitem)
{
//添加新的投票项
if(!mysql_db_query($mysqldb,"insert into vote values ('$newvoteitem',0)"))
{
echo "添加出错!<br>";
}
}
//用COOKIE保存投票人的投票记录
if($vote && $already_voted) {
echo "<font color=red>请您不要重复投票,谢谢!</font><br><br>\n";
}
else if($vote)
{
if(!mysql_db_query($mysqldb,"update vote set votes=votes+1 where name='$vote'"))
{
echo "投票出错!<br>";
}
}
//计算总投票数
$result=mysql_db_query($mysqldb,"select sum(votes) as sum from vote");
if($result)
{
$sum=(int) mysql_result($result,0,"sum");
mysql_free_result($result);
}
//读出投票项数据
$result=mysql_db_query($mysqldb,"select * from vote order by votes DESC");
?>
<table cellspacing=0 bordercolordark=#FFFFFF width="90%" bordercolorlight=#000000 border=1 align="center" cellpadding="2">
<tr>
<td align="center" width="15%">投票</td>
<td align="center" width="60%">选项</td>
<td align="center" width="25%">票数/比例</td>
</tr>
<?php
//循环读出投票项
while($row=mysql_fetch_row($result))
{
//计算百分比
$per=(int)(100*$row[1]/$sum);
?>
<tr>
<td align="center"><input type=radio name=vote value="<?php echo $row[0]?>">
</td>
<td><?php echo $row[0]?></td>
<td align="right"><?php echo $row[1]?>
<img src="blue.gif" height=10 width="<?php echo $per?>">
<?php echo $per?>
</td>
</tr>
<?php
}
//释放结果集
mysql_free_result($result);
?>
</table>
<br><input type=submit value="投 票">
</form>
</td>
</tr>
</table>
</BODY>
</HTML>$result=mysql_db_query($mysqldb,"select sum(votes) as sum from vote");
if($result)
{
$sum=(int) mysql_result($result,0,"sum");
mysql_free_result($result);
}
这个地方我有几个问题
1
$result=mysql_db_query($mysqldb,"select sum(votes) as sum from vote");
返回的是什么?产生变量$sum吗?
2
$sum=(int) mysql_result($result,0,"sum");
中的sum是字段名吗?
如果是,那我在mysql中没有建立这一字段也正常工作了啊。
并且从if(!mysql_db_query($mysqldb,"insert into vote values ('$newvoteitem',0)"))这一句来看,应该就有两个字段啊。
3mysql_free_result($result);
释放内存以后,是$sum不消失,$result消失了吗?
//用COOKIE保存投票人的投票记录
if($vote && !$already_voted) SetCookie("already_voted","1");
?>
<html>
<head>
<title>简易投票系统</title>
</head>
<body alink="#FF0000" link="#000099" vlink="#CC6600" topmargin="8" leftmargin="0" bgColor="#FFFFFF">
<br><center><font color=green>简易投票系统-学习PHP 4.0容易吗?</font></center><br>
<table cellspacing=0 bordercolordark=#FFFFFF width="60%" bordercolorlight=#000000 border=1 align="center" cellpadding="2">
<tr>
<td align="center">
<form action="<?php echo $PHP_SELF?>" method="post" name="frmVote">
<br>添加一个投票类别:
<input type="text" name="newvoteitem" size="20" maxlength="30">
<input type=submit value="添 加">
<br><br>
<?php
//连接数据库
mysql_connect("localhost","root","");
$mysqldb="test";
if($newvoteitem)
{
//添加新的投票项
if(!mysql_db_query($mysqldb,"insert into vote values ('$newvoteitem',0)"))
{
echo "添加出错!<br>";
}
}
//用COOKIE保存投票人的投票记录
if($vote && $already_voted) {
echo "<font color=red>请您不要重复投票,谢谢!</font><br><br>\n";
}
else if($vote)
{
if(!mysql_db_query($mysqldb,"update vote set votes=votes+1 where name='$vote'"))
{
echo "投票出错!<br>";
}
}
//计算总投票数
$result=mysql_db_query($mysqldb,"select sum(votes) as sum from vote");
if($result)
{
$sum=(int) mysql_result($result,0,"sum");
mysql_free_result($result);
}
//读出投票项数据
$result=mysql_db_query($mysqldb,"select * from vote order by votes DESC");
?>
<table cellspacing=0 bordercolordark=#FFFFFF width="90%" bordercolorlight=#000000 border=1 align="center" cellpadding="2">
<tr>
<td align="center" width="15%">投票</td>
<td align="center" width="60%">选项</td>
<td align="center" width="25%">票数/比例</td>
</tr>
<?php
//循环读出投票项
while($row=mysql_fetch_row($result))
{
//计算百分比
$per=(int)(100*$row[1]/$sum);
?>
<tr>
<td align="center"><input type=radio name=vote value="<?php echo $row[0]?>">
</td>
<td><?php echo $row[0]?></td>
<td align="right"><?php echo $row[1]?>
<img src="blue.gif" height=10 width="<?php echo $per?>">
<?php echo $per?>
</td>
</tr>
<?php
}
//释放结果集
mysql_free_result($result);
?>
</table>
<br><input type=submit value="投 票">
</form>
</td>
</tr>
</table>
</BODY>
</HTML>$result=mysql_db_query($mysqldb,"select sum(votes) as sum from vote");
if($result)
{
$sum=(int) mysql_result($result,0,"sum");
mysql_free_result($result);
}
这个地方我有几个问题
1
$result=mysql_db_query($mysqldb,"select sum(votes) as sum from vote");
返回的是什么?产生变量$sum吗?
2
$sum=(int) mysql_result($result,0,"sum");
中的sum是字段名吗?
如果是,那我在mysql中没有建立这一字段也正常工作了啊。
并且从if(!mysql_db_query($mysqldb,"insert into vote values ('$newvoteitem',0)"))这一句来看,应该就有两个字段啊。
3mysql_free_result($result);
释放内存以后,是$sum不消失,$result消失了吗?
解决方案 »
- 高手请进:校园网站内视频、电影的下载控制(寻求解决方法)
- sql排序,取排序位置
- 关于多个临时表的排序问题!
- 用php实现浏览更多的方法,哪里有能用的源代码?
- 为什么使用DATE("Y-m-d H:i:s")时Hour显示不对啊!
- 各位好!用PHP,ASP如何调用*.DLL文件!在线!!!
- win2000 环境下 php+apache 或php+iis 如何让getallheaders()生效??
- 请推荐一本精典的php书
- 有人用php处理过二进制文件,注意不是向MYSQL库中存取,而是处理。
- 听说php要比ASP好,那知道PHP的学习资料少得可怜,一个信息发布系统都找不到!!
- 如何 用php获取本季度的第一天 本月的第一天,本周的第一天,谢谢,最好给出详细代码
- 请问用php如何实现操作一个列表的部分内容?
$result=mysql_db_query($mysqldb,"select sum(votes) as sum from vote");
返回的是布尔值(查询执行是否成功),不产生变量$sum
释放内存以后,是$sum不消失,$result消失了
$sum=(int) mysql_result($result,0,"sum");
中的sum是字段别名
2.sum是在上面的查询语句中指定的列的别名,上面查询语句select sum(votes) as sum from vote中as sum指定了别名为sum,所以在mysql中没这字段也一样能正常工作
3.mysql_free_result(resource $result ) 将释放所有与结果标识符 $result 所关联的内存。文档中是这么写的。具体的我也不清楚,LZ测试下就知道了详细的还是参考文档吧
$sum=(int) mysql_result($result,0,"sum");
sum是谁的别名?
是字段的吗?
mysql_result是怎么通过 0 和sum 来找到那个值的?
或者干脆理解成为
就是想把值赋给一个变量$sum,就通过字段别名sum的第一行来得到?
select sum(votes) as sum from vote
这个语句中,会产生一行,里面其中一列,就是计算sum(votes)的那一列,别名被定为summysql_result 中的0就是指上面查询语句中产生的第1行(跟数组下标的情况类似),这个函数返回的就是第1行中sum列的值其实现在已经不推荐使用mysql_result的语句了,文档中推荐使用其他高效的函数来替代这个函数