您好,谢谢您的宝贵时间。
我正在寻找使用PHP中准备好的语句从mysql数据库填充下拉菜单。我只是在寻找具有匹配“ client_id”的任何条目。我已经看到这解决了许多方法(其中一些已过时,其中一些疯狂而复杂),但无法找到以与我一直在使用的方式相似的方式使用php的示例(见下文),因此我可以拼凑出一些可行的方法。
这是我要使用的代码。
<?php
include ('connect.php');
if ($_POST) {
if (!empty($_POST['client_id'])) {
$client_id = htmlspecialchars($_POST['client_id']);
$stmt = $link->prepare("SELECT project_id, nickname FROM project WHERE client_id=?");
$stmt->bind_param('s', $client_id);
$stmt->execute();
$row = $stmt->fetch();
while ($stmt->fetch()) {
echo ("<option value='$row['project_id']'>$row['nickname']</option>");
}
$stmt->close();
}
}
include ('disconnect.php');
?>
我知道回声部分不正确,但是我希望至少能够显示出我的想法。通常,我也不是100%正确地使用了行变量。感谢您的协助。
编辑:
上面的文件称为“ fetchProjects.php”
这是包含此PHP文件的代码。
<div class="twelve columns">
<p>select an existing project below</p>
<select size="10" name="selectedProject">
<?php include('fetchProjects.php')?>
</select>
</div>
最佳答案
请查阅:
http://php.net/manual/en/mysqli-result.fetch-assoc.php
http://php.net/manual/en/mysqli-stmt.fetch.php
建议:
<?php
include ('connect.php');
if (isset($_POST['client_id'])) {
if (!empty($_POST['client_id'])) {
$client_id = htmlspecialchars($_POST['client_id']);
$stmt = $link->prepare("SELECT project_id, nickname FROM project WHERE client_id=?");
$stmt->bind_param('s', $client_id);
$stmt->execute();
$stmt->bind_result($pid, $nick);
while ($stmt->fetch()) {
echo ("<option value='$pid'>$nick</option>");
}
$stmt->close();
}
}
include ('disconnect.php');
?>
关于php - 带有准备好的语句的下拉列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44035000/