制作PHP下拉框从SQL数据库中提取数据

制作PHP下拉框从SQL数据库中提取数据,php,html,sql,xampp,Php,Html,Sql,Xampp,所以几天来我一直在努力让它工作,我完全迷失了方向。我试着按照这里的一些答案来做,但我似乎不知道我需要做什么改变来适应我的数据库 我已经看到了复杂而简单的解决方案,但我目前正在尝试的是: 注意:在第17行的index.php中使用未定义的常量DB_PASS-假定为“DB_PASS” 警告:mysqli::_construct():(HY000/1045):第17行index.php中用户“username”@“localhost”(使用密码:YES)的访问被拒绝 警告:mysqli::qu

所以几天来我一直在努力让它工作,我完全迷失了方向。我试着按照这里的一些答案来做,但我似乎不知道我需要做什么改变来适应我的数据库

我已经看到了复杂而简单的解决方案,但我目前正在尝试的是:


注意:在第17行的index.php中使用未定义的常量DB_PASS-假定为“DB_PASS”

警告:mysqli::_construct():(HY000/1045):第17行index.php中用户“username”@“localhost”(使用密码:YES)的访问被拒绝

警告:mysqli::query():无法在第19行的index.php中获取mysqli

警告:get_data():无法在第19行的index.php中获取mysqli

改变

$mysqli= new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME) or die("Couldn't    connect".mysqli_connect_error());


分析错误:语法错误,意外的“public”(T_public),第15行的index.php中应为文件结尾

改变

public function get_data()



这些更改将处理您收到的所有错误。

使用@stealthyninja编辑代码:

    <?php
    echo "";

    define('DB_USER', 'username');
    define('DB_PASSWORD', 'password');
    define('DB_HOST', 'localhost');
    define('DB_NAME', 'username_test');

    $dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die('Could not connect to MySQL: ' . mysqli_connect_error() );

    mysqli_set_charset($dbc, 'utf8');

?>
<?php 
    function get_data()
    {
       $mysqli= new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die("Couldn't connect".mysqli_connect_error());
       $sql= "SELECT Staff_Surname, Staff_Forename FROM users";
       $result= $mysqli->query($sql) or die($mysqli->error);
          while ($row=$result->fetch_array(MYSQLI_ASSOC)) 
          {
            echo "<option value=\"".$row["Staff_Surname"]."\"selected>".$row["Staff_Forename"]."</option>";
          }
     }  
?>

<html>

<body>
<select name="abc" id="xyz">
    <?php get_data(); ?>
</select>


</body>

</html>


错误消息是什么?为什么要在函数中再次连接-您已经有了连接,将其作为参数传递到函数中…(您应该在
选项
标记中只选择一个
,但这不是主要问题)在
$行[“Staff\u姓氏”]中可能有一个
发布生成的HTML也会很有帮助,“只会导致一系列错误。”“-想过和我们分享吗?如果我们知道您需要什么帮助,我们会更容易提供帮助。我尝试了您建议的更改,但它仍然不想播放。@Dave-您确定您的数据库有正确的用户名和密码吗?使用您更新的代码,我得到了预期的输出。@StealthHynija我确信我使用了正确的用户名和密码,我甚至尝试过恢复为root和blank。但我似乎无法让它发挥作用。更重要的是,即使是我以前做的测试页面,它能够连接的地方现在也出现了错误。我的XAMPP肯定有问题。我将在第二个答案中发布一些截图。
public function get_data()
function get_data()
    <?php
    echo "";

    define('DB_USER', 'username');
    define('DB_PASSWORD', 'password');
    define('DB_HOST', 'localhost');
    define('DB_NAME', 'username_test');

    $dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die('Could not connect to MySQL: ' . mysqli_connect_error() );

    mysqli_set_charset($dbc, 'utf8');

?>
<?php 
    function get_data()
    {
       $mysqli= new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die("Couldn't connect".mysqli_connect_error());
       $sql= "SELECT Staff_Surname, Staff_Forename FROM users";
       $result= $mysqli->query($sql) or die($mysqli->error);
          while ($row=$result->fetch_array(MYSQLI_ASSOC)) 
          {
            echo "<option value=\"".$row["Staff_Surname"]."\"selected>".$row["Staff_Forename"]."</option>";
          }
     }  
?>

<html>

<body>
<select name="abc" id="xyz">
    <?php get_data(); ?>
</select>


</body>

</html>