Php 两个选择具有相同数据
我想选择一组团队,我做了两次选择,并从数据库中显示团队:我所做的是:Php 两个选择具有相同数据,php,html,select,Php,Html,Select,我想选择一组团队,我做了两次选择,并从数据库中显示团队:我所做的是: <p> <label>Teams</label> <select id="team1" name="team1"> <option disabled selected value>Team 1</option> <?php while ($team = $db->fetch_a
<p>
<label>Teams</label>
<select id="team1" name="team1">
<option disabled selected value>Team 1</option>
<?php
while ($team = $db->fetch_array($teams))
{
echo renderTeamsSelect($team);
}
$db->free_result($teams);
?>
</select>
VS
<select id="team2" name="team2">
<option disabled selected value>Team 2</option>
<?php
while ($team = $db->fetch_array($teams))
{
echo renderTeamsSelect($team);
}
$db->free_result($teams);
?>
</select>
</p>
我的函数rendertamselect是:
function renderTeamsSelect($team)
{
return '<option value="' . $team['id'] . '">' . $team['name'] . '</option>';
}
一旦我在html中看到结果,团队2就不会在选项中显示任何内容
我包括了一个截图
我不明白为什么“选择一”显示结果,而“选择二”可能是您正在使用的
$db->free_result($teams);
通过这种方式,您可以释放结果
尝试仅在页面末尾执行此操作,省略第一个是一种更好的方法:-
<?php
$teams = $db->query('SELECT * FROM teams');
$final_data = '';
while ($team = $db->fetch_array($teams))
{
$final_data .= renderTeamsSelect($team);
}
function renderTeamsSelect($team)
{
return '<option value="' . $team['id'] . '">' . $team['name'] . '</option>';
}
?>
<p>
<label>Teams</label>
<select id="team1" name="team1">
<option disabled selected value>Team 1</option>
<?php echo $final_data ;?>
</select>
VS
<select id="team2" name="team2">
<option disabled selected value>Team 2</option>
<?php echo $final_data ;?>
</select>
</p>
为什么不只调用一次函数并将结果存储在一个变量中并在两个位置使用呢?谢谢@scaisEdge.:
<?php
$teams = $db->query('SELECT * FROM teams');
$final_data = '';
while ($team = $db->fetch_array($teams))
{
$final_data .= renderTeamsSelect($team);
}
function renderTeamsSelect($team)
{
return '<option value="' . $team['id'] . '">' . $team['name'] . '</option>';
}
?>
<p>
<label>Teams</label>
<select id="team1" name="team1">
<option disabled selected value>Team 1</option>
<?php echo $final_data ;?>
</select>
VS
<select id="team2" name="team2">
<option disabled selected value>Team 2</option>
<?php echo $final_data ;?>
</select>
</p>