0

我创建了一系列网页,其中一个在 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 回答