1

我想用从我的 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";
?>
4

1 回答 1

0

由于您已经通过 phpmyadmin 验证了有数据,这导致了几个后续问题:

  • 您是否在此页面上成功执行了任何其他查询?如果不是,那么最可能的罪魁祸首是与数据库的连接不成功。
  • 你在这个片段之前运行 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或允许参数化查询设置的东西。

于 2012-10-11T15:42:45.067 回答