使用PHP的mySQL下拉列表不显示数据库中的选项

时间:2015-12-21 22:24:26

标签: php html mysql

我在网上查看了其他一些与此相关的问题,但似乎没有人真正遇到我的错误。

我编写了我的PHP代码并将其实现到我的HTML中,我得到了下拉框,但它实际上并不想显示任何值。我应该在代码中包含任何实现或修复吗?我如何让它工作?

我的数据库名为:Treatments

我希望显示的数据库中的列名为:Treatment

treatment_dropdown.php

<?php

    $hostname = 'host_name';
    $dbname = 'database_name';
    $username = 'username';
    $password = 'password';

    $con=mysql_connect($hostname,$username,$password,$dbname) or die("Failed to connect to MySQL: " . mysql_error());
    $db=mysql_select_db($dbname,$con) or die("Failed to connect to MySQL: " . mysql_error());


    $query = "SELECT * FROM `Treatments`";

    $result = mysql_query($con, $query);
    $options = "";
    while ($row = mysql_fetch_array($result)){
        $options = $options . "<option>$row[1]</option>";
    }


?>

HTML:

<body>  
    <select>
        <?php 
            echo $options;
        ?>
    </select>
</body>

4 个答案:

答案 0 :(得分:2)

考虑更改此行:

$query = "SELECT * FROM 'Treatments'";

使用反引号代替单引号,如下所示:

$query = "SELECT * FROM `Treatments`";

在我的测试查询中,由于这个原因我收到了错误,如果有帮助请告诉我。

答案 1 :(得分:1)

<?php include 'treatment_dropdown.php'; ?>添加到HTML文件的顶部。这应该允许您访问$options字符串,以便可以在该文件中使用它。请注意,为了使其正常工作,treatment_dropdown.php需要与HTML文件位于同一目录中。如果不是,则需要更改include语句以反映相应的文件路径。

答案 2 :(得分:0)

  1. 不要使用mysql _ *()函数,不推荐使用它们。请改用mysqli或PDO。
  2. 无论使用哪个库来访问mysql,都要分别检查sql代码中的错误。 sql代码中的错误不会导致php代码中的错误。
  3. 在这种特殊情况下,问题是您将表格包含在单引号中而不是反引号中。
  4. 正确的代码:

    $query = "SELECT * FROM `Treatments`";
    

答案 3 :(得分:0)

这是您的PHP文件应该是什么样子:

<?php

$hostname = 'localhost';
$dbname   = 'Treatments';
$username = 'root';
$password = '';

$con = mysql_connect( $hostname, $username, $password, $dbname) or die("Failed to connect to MySQL: " . mysql_error());
$db = mysql_select_db($dbname,$con) or die("Failed to connect to MySQL: " . mysql_error());

/* No single quotes needed for the table name. */
$query = "SELECT * FROM Treatments";

/* First parameter should be $query not $con */
$result = mysql_query($query, $con);
$options = "";

/* Check if no results exist. */
if ( !$result ) {
    die( "NO results found." );
}

while ( $row = mysql_fetch_array($result) ) {
    $options .= "<option>$row[treatment]</option>";
}

&GT;

注意:

  1. 不要使用mysql_ *函数,它们不安全,而是使用PDO。
  2. 您的表名不需要用单引号括起来。
  3. mysql_query期望参数1是查询而不是数据库连接。
  4. 你应该检查一下是否找不到结果。