| 
 | 
 
(刚才那个没有用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>&nbsp;</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] |   
 
 
 
 |