简体   繁体   English

PHP / MySQL:来自 MySQL 的数据未显示在选择选项(下拉列表)中

[英]PHP / MySQL: Data from MySQL not display in Select Option (dropdown list)

I created a dropdown list where all the data is populated from a column in a MySQL database table.我创建了一个下拉列表,其中所有数据都是从 MySQL 数据库表中的一列填充的。 The problem is, the data is not displayed.问题是,数据不显示。 I don't know why.我不知道为什么。 Below is my code:下面是我的代码:

PHP 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 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>

change in php at while loop like this,像这样在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"];
}

?>

you are directly fetch in while loop , so it skipping first row , so you have not no data in $row .您直接在 while 循环中获取,因此它跳过第一行,因此 $row 中没有数据。 And also use fetchAll() so it fetch all row of table .并且还使用 fetchAll() 以便它获取 table 的所有行。 fetch() only one row. fetch() 只有一行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM