制作 PHP 下拉框从 SQL 数据库中提取数据
Posted
技术标签:
【中文标题】制作 PHP 下拉框从 SQL 数据库中提取数据【英文标题】:Making a PHP dropdown box pull data from an SQL database 【发布时间】:2020-07-08 23:37:30 【问题描述】:所以几天来我一直在努力让它工作,但我完全迷失了。我已尝试关注此处的一些答案,但我似乎无法弄清楚我需要更改哪些内容以使其适应我的数据库。
我见过复杂而简单的解决方案,但我现在正在尝试的是:
...
<?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 database
如果你们能提供任何帮助,我们将不胜感激。谢谢。
抱歉,在预览中它似乎显示了错误所在。当我尝试在浏览器中运行代码时,我得到了这个:enter image description here
【问题讨论】:
错误信息是什么?为什么在函数中再次连接 - 你已经有连接,将其作为参数传递给函数... (option
标签中应该只有一个selected
,但这不是主要问题)
$row["Staff_Surname"]
中可能有一个"
发布生成的 HTML 也会有所帮助
“只会导致一堆错误” - 考虑与我们分享它们吗?如果我们知道您需要 with 的帮助,我们会更轻松地提供帮助。
【参考方案1】:
注意:使用未定义的常量 DB_PASS - 在第 17 行的 index.php 中假定为“DB_PASS”警告:mysqli::__construct(): (HY000/1045): index.php 中的用户 'username'@'localhost' 访问被拒绝(使用密码:YES)第 17 行警告:mysqli::query():无法在 index.php 中获取 mysqli 行 19警告:get_data():无法在 19 行的 index.php 中获取 mysqli b>
改变
$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),预计 index.php 中的文件结尾在 15
改变
public function get_data()
到
function get_data()
这些更改应该会处理您收到的所有错误。
【讨论】:
我尝试进行您建议的更改,但它仍然不想播放。 @Dave - 您确定您拥有正确的数据库用户名和密码吗?使用您更新的代码,我得到了预期的输出。 @stealthhyninja 我很确定我使用了正确的用户名和密码,我什至尝试过恢复为 root 和空白。但我似乎无法让它工作。更重要的是,即使我之前制作的可以连接的测试页面现在也出现错误。我的 XAMPP 一定有什么问题。将在我的第二个答案中发布一些屏幕截图。【参考方案2】:带有@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 的问题。首先是用户名和密码 这里:login info XAMPP 控制面板:XAMPP 之前有效的测试代码:Registration 现在出现的错误:Registration Error我认为我没有改变以前工作时的任何内容。我按照 Larry Ullman 所著的“动态网站的 PHP 和 MySQL 第五版”一书中的教程构建了注册页面。
【讨论】:
以上是关于制作 PHP 下拉框从 SQL 数据库中提取数据的主要内容,如果未能解决你的问题,请参考以下文章