我有一个包含html表单的网站,在这个表单中我有一个下拉列表,其中包含在公司工作的代理列表,我想从MySQL数据库中获取数据到这个下拉列表,所以当你添加一个新的代理时他的name将在下拉列表中显示为选项。
请帮助我编写这个PHP代码,谢谢
<select name="agent" id="agent">
</select>
答案 0 :(得分:18)
# here database details
mysql_connect('hostname', 'username', 'password');
mysql_select_db('database-name');
$sql = "SELECT username FROM userregistraton";
$result = mysql_query($sql);
echo "<select name='username'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['username'] ."'>" . $row['username'] ."</option>";
}
echo "</select>";
# here username is the column of my table(userregistration)
# it works perfectly
答案 1 :(得分:16)
要执行此操作,您需要遍历查询结果的每一行,并为每个下拉选项使用此信息。您应该能够相当轻松地调整下面的代码以满足您的需求。
// Assume $db is a PDO object
$query = $db->query("YOUR QUERY HERE"); // Run your query
echo '<select name="DROP DOWN NAME">'; // Open your drop down box
// Loop through the query results, outputing the options one by one
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
echo '<option value="'.$row['something'].'">'.$row['something'].'</option>';
}
echo '</select>';// Close your drop down box
答案 2 :(得分:0)
你所要求的是非常直接的
对您的数据库执行查询以获取结果集或使用API获取结果集
循环结果集或使用php
在每次迭代中,只需将输出格式化为元素
以下推荐应该有所帮助
Getting Datafrom MySQL database
希望这有助于:)
答案 3 :(得分:0)
您需要从数据库中获取所有行,然后遍历它们,为每行显示一个新的 <option>
。注意使用htmlspecialchars()
避免XSS。
$pdo = new \PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", 'user', 'password', [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_EMULATE_PREPARES => false
]);
// Select all values from the table Agents
$stmt = $pdo->prepare("SELECT Id, Name FROM Agents");
$stmt->execute();
echo '<select name="agent" id="agent">';
// For each row from the DB display a new <option>
foreach ($stmt as $row) {
// value attribute is optional if the value and the text is the same
echo '<option value="'.htmlspecialchars($row['Id']).'">';
echo htmlspecialchars($row['Name']); // The text to be displayed to the user
echo '</option>';
}
echo '</select>';
如果要预选其中一个值,则需要将 selected
属性应用于 <options>
之一:
$selected = 'Somebody';
echo '<select name="agent" id="agent">';
foreach ($stmt as $row) {
if ($selected === $row['Name']) {
echo '<option value="'.htmlspecialchars($row['Id']).'" selected >';
} else {
echo '<option value="'.htmlspecialchars($row['Id']).'">';
}
echo htmlspecialchars($row['Name']);
echo '</option>';
}
echo '</select>';