[英]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.