0

一連の Web ページを作成しました。1 つは SQL データベースにユーザーを作成し、別のページはこれらすべてのユーザーを検索し、別のデータベース入力のドロップダウン リストに表示する必要があります。PHPファイルを呼び出し、echoを使用して配列を出力すると正常に動作しますが、htmlファイル内に配置すると、ドロップダウンメニューに「$username_array[] = "\"".$row['Username']. ""\" 引用符をエスケープすることと関係があると信じたら、それを理解することはできませんが、どんな助けも大歓迎です!!

これは、html ファイル内に保持されているコードです。

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db = 'fid';

echo "<label class=\"input\" for=\"investigator\" type=\"input\">Investigator:<select id=\"investigator\" name=\"investigator\">"; 

$conn = mysql_connect($dbhost,$dbuser,$dbpass);
if (!$conn)
die('Could not connect: ' . mysql_error());

mysql_select_db($db);

$username_array = array();
$sql = mysql_query("SELECT `Username` FROM `user`");
while ($row = mysql_fetch_array($sql)){
//echo $username_array[] = "\"".$row['Username']."\"";
echo "<option value='null'>"$username_array[] = "\"".$row['Username'].""\"</option>";
}
echo "</label>";

mysql_close($conn)
?>

ユーザー名配列がドロップダウンリスト内で次々とユーザーを表示するようにしたいのですが、現在はオプション値の行を解釈せずにエコーアウトするだけです

アップデート

私は今、コードをこれに変更しました

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db = 'fid';

$conn = mysql_connect($dbhost,$dbuser,$dbpass);
if (!$conn)
die('Could not connect: ' . mysql_error());

mysql_select_db($db);

echo '<select id="investigator" name="investigator">';
$resource = mysql_query("SELECT `Username` FROM `user`");
if($resource && mysql_num_rows($resource)) {
    while ($row = mysql_fetch_assoc($resource)){
        echo '<option value="'.$row['Username'].'">'.$row['Username'].'</option>';
    }
}
echo '</select>';
mysql_close($conn)
?>

ただし、html はドロップダウン リストとユーザー名ではなくスクリプトを出力します。

html出力

'; $resource = mysql_query("SELECT UsernameFROM user"); if($resource && mysql_num_rows($resource)) { while ($row = mysql_fetch_assoc($resource)){ echo ''; } } エコー ''; mysql_close($conn) ?>

何日も私を悩ませていたので、私は本当にこれを機能させる必要があります!

4

2 に答える 2

1

This will do what you need

echo '<select id="investigator" name="investigator">';
$resource = mysql_query("SELECT `Username` FROM `user`");
if($resource && mysql_num_rows($resource)) {
    while ($row = mysql_fetch_assoc($resource)){
        echo '<option value="'.$row['Username'].'">'.$row['Username'].'</option>';
    }
}
echo '</select>';

BUT you should also move to mysqli or PDO as mysql_* is depreciated

I have changed $sql to $resource as it is not an SQL statement but a resource.

于 2013-03-19T14:35:45.857 に答える
0

I'd change your code to something similar to this:

echo "<select>";
while ($row = mysql_fetch_array($sql)) {
    echo "<option value=\"VALUE\">".$row['Username']."</option>";
}
echo "</select>";
于 2013-03-19T14:35:41.170 に答える