0

タグを提示するHTMLフォームにデータを入力するmySQLクエリを実行しようとしています。mySQLテーブルの値とテキストの両方を入力したいと思います。これは私がさまざまなWebサイトで物事を見つけることに基づいて試したものですが、うまくいきませんでした

<select name="id">
   <?php

    require_once dirname(__FILE__) . '/db_connect.php';
    $db = new DB_CONNECT();

    $query="SELECT id, name FROM file order by name";
    $result=mysql_query($query) or die ("Query to get data from firsttable failed: " .mysql_error());

    while ($row = mysql_fetch_array($result)) {
    $id = $row[id];
    $name =$row[name];
      echo "<option value=\"$id\">
            $name
            </option>";
     }
   ?>
    </select>

コメント:機能しなかったということは、選択ドロップダウンが空であるという事実を指します。PHPをフォームから取り出し、それを独自のname.phpファイルに入れて、実行してみました。それはうまくいったようです。そこで、PHPにechoステートメントを追加して、フォームの開始と終了、および最初の選択行をエコーアウトしました。これは問題なく機能し、ドロップダウンは問題なく表示されました。上記のHTMLフォームに戻って、いくつかのデバッグステートメントを出力するためにPHPに他のいくつかのechoステートメントを追加しました。最初のエコーは常に無視され、選択項目は追加されません。他のエコー行は指定されたテキストのみを追加し、変数はコンテンツではなく変数名として出力されます。したがって、$nameは選択ドロップダウンに表示されます。

4

1 に答える 1

5

idとnameを一重引用符で囲む必要があります。つまり、これを交換する必要があります

$id = $row[id];
$name =$row[name];

これで

$id = $row['id'];
$name =$row['name'];

DB_CONNECTの内容とエラーが何であるかを知らなくても、これが何が問題なのかを推測するのに最適です。

于 2012-09-24T04:40:42.753 に答える