QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 611|回复: 0

有一个关于php传值的问题(请管理员删掉刚才那贴。谢谢)

[复制链接]
发表于 2003-5-13 00:54:59 | 显示全部楼层 |阅读模式
(刚才那个没有用code,所以有些代码不能显示出来,所以再发一贴。请管理员删掉刚才那贴。谢谢。)
[code:1]我从书上看到一个投票程序,自己照着写代码,出现了不少问题,我慢慢搞定了。可是下面这个问题最后也还是无法解决,请各位帮助一下小弟。
全部代码如下:
1.
<?php
//enter.php

if($id=="id1")
{

mysql_connect("localhost","root","abc");
mysql_select_db("vote");
setcookie("v1",time());
$sql="update vote set number=number-1 where name='$vote'";
mysql_query($sql);
}
if($id=="id2")
{

mysql_connect("localhost","root","abc");
mysql_select_db("vote");
setcookie("v2",time());
$sql="update vote set number=number-1 where name='$vote'";
mysql_query($sql);
}
if($id=="id3")
{

mysql_connect("localhost","root","abc");
mysql_select_db("vote");
setcookie("v3",time());
$sql="update vote set number=number-1 where name='$vote'";
mysql_query($sql);
}
?>

<html>
<body>
<center><font size=5 color=green>在线投票区</font>
<hr>
<form method=post action=getdata.php>
    <table border="1">
      <tr>
        <td>
          <input type=radio name=id value=id1>
          最佳人气男歌手票选</td>
        <td ><a href="result.php?id=id1">查看此票选结果</a></td>
      </tr>
      <tr>
        <td><input type=radio name=id value=id2>
          最佳人气女歌手票选</td>
        <td ><a href="result.php?id=id1">查看此票选结果</a></td>
       </tr>
      <tr>
        <td>
          <input type=radio name=id value=id3>
          最佳日本偶像剧票选</td>
        <td ><a href="result.php?id=id1">查看此票选结果</a></td>
      </tr>
      <tr>
        <td colspan="2" height="25">
          <div align="center">
            <input type="submit" name="send" value="投票">
          </div>
        </td>
      </tr>
    </table>
  </form>
<hr>
<font color=red size=4><?php echo $errmsg;?></font>
</center>
</body>
</html>

2.
<?php
//getdata.php
mysql_connect("localhost","root","abc");
mysql_select_db("vote");
//echo "kkk: ".$id;
//echo "bbb";
//setcookie("id",time());
echo $id;  //用于测$id的值,测完后可以删掉

if($id=="id1" and $v1=="true")
Header("Location:enter.php?errmsg=你已经投过此区的票了!");
if($id=="id2" and $v2=="true")
Header("Location:enter.php?errmsg=你已经投过此区的票了!");
if($id=="id3" and $v3=="true")
Header("Location:enter.php?errmsg=你已经投过此区的票了!");
if($id=="")
Header("Location:enter.php?errmsg=请选择您要投票的项目..");

Switch($id)
{

case "id1":$num=1;
$select="最佳人气男歌手票选";
setcookie("id",$id);
break;

case "id2":$num=2;
$select="最佳人气女歌手票选";
setcookie("id",$id);
break;

case "id3":$num=3;
$select="最佳日本偶像剧票选";
setcookie("id",$id);
break;
default:
}
$sql="select * from vote where id='$num'";
$records=mysql_query($sql);
?>
<html>
<title><?php echo $select;?></title>
<body>
<div align="center"><font size="5" color="#006633"><?php echo $select;?></font>
  <hr>
  <p> </p><form name="form1" method="post" action="vote.php">
    <table border="1" cellspacing="0" cellpadding="0">
      <tr>
        <td bgcolor="#FFFF00">候选人</td>
        <td bgcolor="#FFFF00">目前得票数</td>
      </tr>
     <?php
     while(list($id,$name,$number)=mysql_fetch_row($records))
     {

     echo "<tr><td bgcolor=#0033FF><input type=radio name=vote value=".$name.">";
     echo $name."</td>";
     echo "<td align=center>".$number."</td></tr>";

     }
    ?>
        <tr align=center><td colspan=2><input type=submit name=send value=投一票></tr>
            </table>
  </form>
  <hr>
  <font color="#FF0000" size="4"><?php echo $errmsg;?></font> </div>
</body>
</html>

3.
<?php
//vote.php
mysql_connect("localhost","root","abc");
mysql_select_db("vote");
echo $id;
if($id=="id1")
setcookie("v1","true");
if($id=="id2")
setcookie("v2","true");
if($id=="id3")
setcookie("v3","true");
if($vote=="")
header("location:getdata.php?errmsg=请选择您要投票的对象!&id=$id");
$sql="update vote set number=number+1 where name='$vote'";
mysql_query($sql);
$cancel=$id;
setcookie("id",time());
?>
<HTML>
<title>投票完成</title>
<BODY link="#007325">
<CENTER>
  <font color=green size=5>您已经投下了神圣的一票了</font>
  <hr>
</center>
<a href="enter.php">我要投票</a> <a href="result.php?id=<?php echo $cancel;?>">查看投票结果</a>
<a href="enter.php?id=<?php echo $cancel;?>&errmsg=您可以重新再投一次&vote=<?php echo $vote;?>">此次不算</a>
</BODY>
</HTML>

4.
<?php
//result.php
echo "id111:".$id;echo "<br>";
mysql_connect("localhost","root","abc");
mysql_select_db("vote");
echo "id: ".$id;
if($id=="id1")
{

$title="最佳人气男歌手";
$select=1;
}
if($id=="id2")
{

$title="最佳人气女歌手";
$select=2;
}
if($id=="id3")
{

$title="最佳日本偶像剧";
$select=3;
}
$sql="select * from vote where id='$select' order by number desc";
$records=mysql_query($sql);
?>
<html>
<title><?php echo $title;?></title>
<body>
<div align="center"><font size="5" color="green"><?php echo $title;?></font>
  <hr>
  <form>
  <table border="1">
    <tr>
      <td bgcolor="yellow">排名</td>
      <td bgcolor="yellow">候选人</td>
      <td bgcolor="yellow">目前得票数</td>
      <td bgcolor="yellow">得票百分比</td>
    </tr>
<?php
  $i=1;
  while(list($id,$name,$number)=mysql_fetch_row($records))
  {

  $no[$i]=$number;
  $total=$number+$total;
  $i++;
  }
  $n=count($no);
  for($m=1;$m<=$n;$m++)
  if($m<>1)
  {

  if($no[$m]==$no[$m-1])
   $p[$m]=$p[$m-1];
  else
   $p[$m]=$m;
  }
  else
   $p[$m]=1;
  $records=mysql_query($sql);
  $i=1;
  while(list($id,$name,$number)=mysql_fetch_row($records))
  {

  echo "<tr><td bgcolor=#C0C0C0>".$p[$i]."</td>";
  echo "<td>".$name;
  echo "<td align=center>".$number."</td>";
  $percent=sprintf("%.2f",$number/$total*100);
  echo "<td align=right>".$percent."</td></tr>";
  $i++;
  }
?>
<tr>
<td>合计</td>
<td align=center colspan=2>总票数:<?php echo $total;?></td>
<td align=right>100</td>
</tr>
</table>
</form>
<a href="enter.php">回首页</a>
</div>
</body>
</html>


其中有几句是我用来看一下id的值传地怎样。
关掉ie后,开一个ie,输入:http://202.192.248.152/html/vote/enter.php
进入getdata.php,能正常接受到来自enter.php的$id,也可以从数据库中调出变量显示出来。这样就可以投票了。
而当我投完票后转到vote.php,点击“查看投票结果”,则转到http://202.192.248.152/html/vote/result.php?id=id2,(可以是id=id1,或id3,取决于投票者的选择)
到了这里,问题出现了。就是这时候应该显示出投票的结果,比如谁谁谁得了多少张票。可是显示的只有第一行字段名,和第二行也是最后一行(合计)。而当我另外开一个ie,输入:http://202.192.248.152/html/vote/result.php?id=id2
就可以正常显示投票结果。真是奇怪。我百思不得其解。是什么原因呢?是配置问题吗?搞不清楚。请帮忙。[/code:1][/code]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 22:36 , Processed in 0.035894 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表