【问题标题】:PHP form dropdown containing options based on SQL dataPHP 表单下拉菜单包含基于 SQL 数据的选项
【发布时间】:2014-07-19 10:47:07
【问题描述】:

我有一个带有下拉字段的表单,我想用我的“乐队”数据库中存在的乐队列表来填充它。我尝试了几段代码,但下拉列表始终为空。我知道数据库连接很好,因为我在我的应用程序的几个部分调用连接。这是我对代码的尝试:

<?php

$select_query= "Select bandname from bands";
$select_query_run = mysql_query($select_query);
echo "<select name='bands'>";
while ($select_query_array=   mysql_fetch_array($select_query_run) )
{
        echo "<option value='' >".htmlspecialchars($select_query_array["bandname"])."</option>";
}
echo "</select>";

?>

【问题讨论】:

  • 检查数据库中的表名和列名。如果像$select_query_run = mysql_query($select_query) or die(mysql_error());这样的错误也会死去
  • 您是否尝试过调试它? while(...) {var_dump($select_query_array);}
  • 我现在收到一条错误消息,指出“未选择数据库”。虽然我了解此消息的上下文,但我的数据库连接是可靠的,因为我在整个应用程序中都在使用它。在我创建的每个脚本中默认调用它。 SELECT 查询是否需要自己的数据库连接参数?
  • @DeanMarkAnthony 没有必要。 mysql_select_db 选择要从表中获取结果的数据库。

标签: php sql drop-down-menu


【解决方案1】:

首先turn on error reporting,如有错误请解决。

如果没有错误并且仍然没有显示任何选项,这意味着查询没有返回任何结果。所以尝试通过在另一个 MySQL 客户端中运行查询来确认它,看看它是否真的返回任何结果。

【讨论】:

    【解决方案2】:

    添加mysql_select_db 将解决您的问题

    <?php
       // Report all PHP errors (see changelog)
       error_reporting(E_ALL);
       mysql_select_db("dbname") or die("Could not open the db");
       $select_query= "select bandname from bands";
       $select_query_run = mysql_query($select_query) or die(mysql_error();
       echo "<select name='bands'>";
        while ($select_query_array=   mysql_fetch_array($select_query_run) )
        {
            echo "<option value='' >".htmlspecialchars($select_query_array['bandname'])."</option>";
        }
        echo "</select>";
    ?>
    

    【讨论】:

    • 现在加载时屏幕是空白的。这似乎比它应该的更棘手......
    • 下拉列表为空?还是页面?
    • 整个页面。所有其他页面内容现已消失。
    • 删除'or die...'后仍然空白
    • 在代码中的 mysql_select_db 之前添加 error_reporting(E_ALL) 并提供错误(如果存在)
    猜你喜欢
    • 2016-01-10
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2018-05-26
    • 2012-10-27
    相关资源
    最近更新 更多