【问题标题】:Populating a HTML form selection with a query of a mySQL使用 mySQL 的查询填充 HTML 表单选择
【发布时间】: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 "&lt;option value=\"{$id}\"&gt;{$name}&lt;/option&gt;";,也可以在echo中使用{ }
  • 好的,“无效”表示选择的下拉菜单为空。我将 php 代码取出并在 name.php 中运行它并且 PHP 代码有效。我什至在其中添加了代码来回显表单的开头和结尾,它看起来很棒。当我将 php 代码添加回 HTML 表单以填充选择时,我在选择下拉列表中什么也没有。我在那里做了更多的测试,通过添加一些其他的PHP回显语句以添加选择项的格式,并且第一个回显语句没有添加,其余的只插入文本,所以$name显示为$下拉列表中的名称。

标签: php mysql


【解决方案1】:

您需要在 id 和 name 周围加上单引号。那就是你需要替换这个

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

通过这个

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

不知道 DB_CONNECT 中有什么以及您的错误是什么,这是我对问题的最佳猜测。

【讨论】:

  • 我同意,这些不太可能是常量。
  • 我确信这有所帮助,但没有解决我的问题。见上面的评论。
猜你喜欢
  • 2011-11-20
  • 2015-09-05
  • 1970-01-01
  • 2021-04-26
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多