从数据库中选择填充SQL的输入

时间:2012-10-11 13:25:14

标签: php mysql select drop-down-menu option

我想用我从SQL数据库中获取的信息填充下拉列表。 我进行查询并希望使用while循环来回显输入字段。

我现在拥有的:

我看到下拉列表中有一个选项,没有数据。

我想要的是什么:

选项选择中的信息。

<dt><label for="image">Bild</label></dt>
<select id="image" name="ak_image" value="<?php echo $ak_image; ?>">
<?php 
  $result = mysql_query("SELECT bi_pfad, bi_name FROM tbl_bilder "); 
  $options = ""; 
  while ($row = mysql_fetch_array($result)) {
    $bi_name = $row["bi_name"];
    $bi_pfad = $row["bi_pfad"];
    $options .= "<option value=\"$bi_pfad\">".$bi_name."</option>\n";
  } 
  echo $options; 
  echo "</select>\n";
?>

1 个答案:

答案 0 :(得分:0)

由于您已通过phpmyadmin验证存在数据,因此会产生一些后续问题:

  • 您是否在此页面上成功执行了任何其他查询?如果没有,那么最可能的罪魁祸首是与db的连接失败。
  • 您是否在此代码段之前运行了mysql_connect()?

您可能还想稍微重构一下,以确保查询函数知道相应的连接,并引入一些错误捕获。

<?
    // Somewhere towards the beginning of this page/view.
    $db_connection = mysql_connect( $host, $user, $password );
?>

<dt><label for="image">Bild</label></dt>
<select id="image" name="ak_image" value="<?php echo $ak_image; ?>">
<?php 
  // Affirmatively pass the connection to the query. Also, check for errors.
  $result = mysql_query("SELECT bi_pfad, bi_name FROM tbl_bilder ", $db_connection); 
  if( $result )
  {
      $options = ""; 
      while ($row = mysql_fetch_array($result)) {
        $bi_name = $row["bi_name"];
        $bi_pfad = $row["bi_pfad"];
        $options .= "<option value=\"$bi_pfad\">".$bi_name."</option>\n";
      } 
      echo $options;
  }
  else
  {
        // Perform error trapping here.
  } 
  echo "</select>\n";
?>

此外,如果您的PHP版本足以支持它们,那么切换库可能是个好主意。至少我会切换到mysqli或允许参数化查询设置的东西。