[英]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),预计第15行index.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>
编辑:
我认为我没有改变它以前工作时的任何东西。 我按照 Larry Ullman 所著的“用于动态网站的 PHP 和 MySQL 第五版”一书中的教程构建了注册页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.