我创建了一个下拉列表,其中所有数据都是从 MySQL 数据库表中的列填充的。问题是,数据没有显示。我不知道为什么。下面是我的代码:
PHP
<?php
//getting id from url
$badgeid = $_GET['badgeid'];
//selecting data associated with this particular id
$sql = "SELECT * FROM users LEFT JOIN roles on users.roles_id = roles.roles_id LEFT JOIN team on users.team_id = team.team_id WHERE badgeid = :badgeid";
$query = $conn->prepare($sql);
$query->execute(array(':badgeid' => $badgeid));
while($row = $query->fetch(PDO::FETCH_ASSOC))
{
$badgeid = $row["badgeid"];;
$fullname = $row["fullname"];
$roles_id = $row["roles_id"];
$roles_name = $row["roles_name"];
$team_id = $row["team_id"];
$team_name = $row["team_name"];
}
?>
html
<tr>
<td width="20%"><b>Team</b></td>
<td width="80%">
<select class="form-control" id="exampleFormControlSelect1" name="team_name">
<?php echo "<option value='".$row["team_name"]."'>".$row["team_name"]."</option>"; ?>
</select>
</td>
</tr>
最佳答案
像这样在 while 循环中更改 php,
<?php
//getting id from url
$badgeid = $_GET['badgeid'];
//selecting data associated with this particular id
$sql = "SELECT * FROM users LEFT JOIN roles on users.roles_id = roles.roles_id LEFT JOIN team on users.team_id = team.team_id WHERE badgeid = :badgeid";
$query = $conn->prepare($sql);
$query->execute(array(':badgeid' => $badgeid));
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
foreach($rows as $row)
{
$badgeid[] = $row["badgeid"];;
$fullname[] = $row["fullname"];
$roles_id[] = $row["roles_id"];
$roles_name[] = $row["roles_name"];
$team_id[] = $row["team_id"];
$team_name[] = $row["team_name"];
}
?>
您直接在 while 循环中获取,因此它跳过第一行,因此 $row 中没有数据。并且还使用 fetchAll() 来获取表的所有行。 fetch() 仅一行。
关于PHP/MySQL : Data from MySQL not display in Select Option (dropdown list),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59135244/