繁体   English   中英

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

[英]Making a PHP dropdown box pull data from an SQL database

所以我已经尝试让它工作几天了,但我完全迷失了。 我已经尝试按照这里的一些答案进行操作,但我似乎无法弄清楚需要更改什么才能使其适应我的数据库。

我见过复杂而简单的解决方案,但我目前正在尝试的是:

...

    <?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 
    public function get_data()
    {
       $mysqli= new mysqli(DB_HOST,DB_USER,DB_PASS,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>

...

当我尝试在浏览器中运行它时,这只会导致一堆错误。 我正在使用 Microsoft Expression Web 4 和 XAMPP。

这是SQL数据库的截图我只需要把名字和姓氏拉到一个下拉框中: SQL数据库

你们能提供的任何帮助将不胜感激。 谢谢你。

抱歉,在预览中看起来它显示了错误是什么。 当我尝试在浏览器中运行代码时,我得到了这个:在此处输入图像描述

注意:使用未定义的常量 DB_PASS - 在index.php中第17行假定为“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());

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


解析错误:语法错误,意外的“公共”(T_PUBLIC),预计第15index.php 中的文件结束

改变

public function get_data()

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>

编辑:

  • 连接到 MySQL 的问题。 首先是用户名和密码:登录信息
  • XAMPP 控制面板: XAMPP
  • 以前工作的测试代码:注册
  • 现在出现的错误:注册错误

我认为我没有改变它以前工作时的任何东西。 我按照 Larry Ullman 所著的“用于动态网站的 PHP 和 MySQL 第五版”一书中的教程构建了注册页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM