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 に答える