【发布时间】:2012-09-24 04:38:16
【问题描述】:
我一直在尝试运行一个 mySQL 查询,该查询填充了一个 HTML 表单,我在其中显示了一个标签。我想填充 mySQL 表中的值和文本。 这是我根据在不同网站上查找内容所尝试的方法,但它不起作用
<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 出现在选择下拉列表中。
【问题讨论】:
-
“没用”怎么办?你得到错误?脚本崩溃?输出不好?您在
$row[id]和$row[name]位上缺少'引号,但通常这只会在 PHP 中发出警告。 -
请不要使用 mysql_* 使用 insted mysqli 或 PDO
-
对不起,用户没有从浏览器获取数据的 sql 指令
-
如果你像这样使用
echo "<option value=\"{$id}\">{$name}</option>";,也可以在echo中使用{ } -
好的,“无效”表示选择的下拉菜单为空。我将 php 代码取出并在 name.php 中运行它并且 PHP 代码有效。我什至在其中添加了代码来回显表单的开头和结尾,它看起来很棒。当我将 php 代码添加回 HTML 表单以填充选择时,我在选择下拉列表中什么也没有。我在那里做了更多的测试,通过添加一些其他的PHP回显语句以添加选择项的格式,并且第一个回显语句没有添加,其余的只插入文本,所以$name显示为$下拉列表中的名称。