所有PHP下拉列表项都显示为“数组”

时间:2012-09-08 15:40:45

标签: php sql drop-down-menu

我的代码只是打算用团队名称填充两个下拉列表,并使用用户选择来操纵这些团队的积分值。作为一个简单的例子,选择2个团队并将他们相应的分数加在一起。

我的主要问题是尝试让用户团队选择和存储在变量中的相应点,以便我可以使用它们。我不太熟悉使用数组或如何检索我想要的值。 我可以轻松地检索名称,但是当我尝试检索两个点和名称时,它会在每个位置使用“数组”错误地填充ddl。 (它在这里在线托管:

我的代码如下,我不确定问题是关于我如何创建下拉列表或我如何检索数据。

感谢您的帮助

<?
require_once 'login.php';
 $db_server = mysql_connect($db_hostname, $db_user, $db_password);
 if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
 mysql_select_db($db_database)
 or die("Unable to select database: " . mysql_error());

 $sql="SELECT team, points FROM teams";
 $result=mysql_query($sql);

 $options="";

 while ($row=mysql_fetch_array($result)) {        
$team[$row["team"]]=$row["points"];  
$options.="<OPTION VALUE=\"$team\">".$team. '</OPTION>';        
 }


 if (isset($_POST['teamA'])) $teamA = $_POST['teamA'];
 else $teamA = "(Not entered)";
 if (isset($_POST['teamB'])) $teamB = $_POST['teamB'];
 else $teamB = "(Not entered)";

 $teamA = htmlspecialchars($teamA);
 $teamB = htmlspecialchars($teamB);

 ?>
 <body>
 You picked <?php echo $teamA; ?>(with <?php echo $team[$teamA]; ?> points) 
 and <?php echo $teamB; ?>(with <?php echo $team[$teamB]; ?>) 
 </br>

 <form method="post" action="ddl.php">

 Team A: 
 <SELECT NAME=teamA>
 <OPTION VALUE=0>Choose
 <?=$options?>
 </SELECT>

 Team B:
 <SELECT NAME=teamB>
  <OPTION VALUE=0>Choose
  <?=$options?>
  </SELECT>

  <input type="submit" />

  </form>
   </body>

1 个答案:

答案 0 :(得分:1)

问题是如何构建SELECT列表。正确的代码是这样的:

while ($row=mysql_fetch_array($result)) {        
    $options.="<OPTION VALUE=\"{$row['team']}\">".htmlspecialchars($row['team']).'</OPTION>';        
}

您无需使用$team变量。