PHP中的Foreach循环
我正在创建一个团队分配表,允许我使用下拉列表将团队成员分配给团队。我有两张桌子:PHP中的Foreach循环,php,Php,我正在创建一个团队分配表,允许我使用下拉列表将团队成员分配给团队。我有两张桌子: 成员-存储人员信息 map\u团队-这是团队信息 我正在为两个表准备一条语句以执行foreach: 成员语句变为$Team\u allocation\u行 map\u team语句变为$team\u List\u行 以下是我目前的代码: <tbody> <tr> <th scope="col">Name</th> <th
-存储人员信息成员
-这是团队信息map\u团队
语句变为成员
$Team\u allocation\u行
语句变为map\u team
$team\u List\u行
<tbody>
<tr>
<th scope="col">Name</th>
<th scope="col">Team</th>
</tr>
<?php $item_type=null; ?>
<?php if($Team_allocation->rowCount() > 0) {
foreach ($Team_allocation->fetchAll() as $Team_allocation_row) { ?>
<tr>
<td><?php echo ucwords($Team_allocation_row['firstname'])." ".ucwords($Team_allocation_row['surname']); ?></td>
<td>
<input type="hidden" name="id[]" value="<?php echo $Team_allocation_row['memberID']; ?>">
<select name="outcome[]">
<?php foreach ($Team_List->fetchAll() as $Team_List_Row) { ?>
<option <?php if($Team_allocation_row['map_team'] == $Team_List_Row['id']) { echo "selected";} ?> value="0"><?php echo $Team_List_Row['name']; ?></option>
<?php } ?>
</select>
</td>
</tr>
<?php } } else { ?>
<tr>
<td>No Users Found</td>
</tr>
<?php } ?>
</tbody>
名称
团队
您将在第一次使用外部foreach循环时使用$Team_List
的所有结果集,因此在外部循环的第二次迭代时,$Team_List
结果集将为空
因此,取而代之的是获取$Team_列表
结果,并将它们放置在一个可以多次重用的数组中
<?php
$teamlist = $Team_List->fetchAll();
?>
<tbody>
<tr>
<th scope="col">Name</th>
<th scope="col">Team</th>
</tr>
<?php $item_type=null; ?>
<?php if($Team_allocation->rowCount() > 0) {
foreach ($Team_allocation->fetchAll() as $Team_allocation_row) { ?>
<tr>
<td><?php echo ucwords($Team_allocation_row['firstname'])." ".ucwords($Team_allocation_row['surname']); ?></td>
<td>
<input type="hidden" name="id[]" value="<?php echo $Team_allocation_row['memberID']; ?>">
<select name="outcome[]">
<?php foreach ($teamlist as $Team_List_Row) { ?>
// ---changed here to ^^^^^^^^^
<option <?php if($Team_allocation_row['map_team'] == $Team_List_Row['id']) { echo "selected";} ?> value="0"><?php echo $Team_List_Row['name']; ?></option>
<?php } ?>
</select>
</td>
</tr>
<?php } } else { ?>
<tr>
<td>No Users Found</td>
</tr>
<?php } ?>
</tbody>
名称
团队
您将在第一次使用外部foreach循环时使用$Team_List
的所有结果集,因此在外部循环的第二次迭代时,$Team_List
结果集将为空
因此,取而代之的是获取$Team_列表
结果,并将它们放置在一个可以多次重用的数组中
<?php
$teamlist = $Team_List->fetchAll();
?>
<tbody>
<tr>
<th scope="col">Name</th>
<th scope="col">Team</th>
</tr>
<?php $item_type=null; ?>
<?php if($Team_allocation->rowCount() > 0) {
foreach ($Team_allocation->fetchAll() as $Team_allocation_row) { ?>
<tr>
<td><?php echo ucwords($Team_allocation_row['firstname'])." ".ucwords($Team_allocation_row['surname']); ?></td>
<td>
<input type="hidden" name="id[]" value="<?php echo $Team_allocation_row['memberID']; ?>">
<select name="outcome[]">
<?php foreach ($teamlist as $Team_List_Row) { ?>
// ---changed here to ^^^^^^^^^
<option <?php if($Team_allocation_row['map_team'] == $Team_List_Row['id']) { echo "selected";} ?> value="0"><?php echo $Team_List_Row['name']; ?></option>
<?php } ?>
</select>
</td>
</tr>
<?php } } else { ?>
<tr>
<td>No Users Found</td>
</tr>
<?php } ?>
</tbody>
名称
团队
首先获取然后foreach在循环中执行查询并不总是一个好主意,试着重新考虑这一点,也许使用“分组依据”查询会有所帮助?首先获取然后foreach在循环中执行查询并不总是一个好主意,试着重新考虑这一点,也许使用“分组依据”查询会有所帮助?那太好了,谢谢!如果没有选择任何选项,我只需添加一个额外的,以使其完美满足我的需要。太好了,谢谢!我只需要添加一个额外的,如果没有选择,使其完美地满足我的需要。