gpt4 book ai didi

PHP动态重复Mysqli结果集

转载 作者:行者123 更新时间:2023-11-29 12:17:32 24 4
gpt4 key购买 nike

我正在尝试根据之前的选择,使用数据库表中的相同结果填充 0 到多个下拉列表。当选择 0 和 1 时它工作正常,但当我尝试将结果集插入后续选择元素时则不然。我假设这是 $row 数组位置的问题。

$homePlayers = "SELECT first_name, last_name, player_id FROM players WHERE team_name LIKE '$homeTeam%'";
$homePlayersQuery = mysqli_query($dbc, $homePlayers);

if (!$homePlayersQuery) {
echo 'err';
} else {
for ($i = 1; $i <= $homeTeamScore; $i++) {
echo "<select name='select-home-scorer-$i'>";

while ($row = mysqli_fetch_array($homePlayersQuery)) {
echo current($row);
echo "<option value='" . $row['player_id'] . "'>" . $row['first_name'] . " " . $row['last_name'] . "</option>";
}
echo "<option value='og'>Own Goal</option></select><br/>";
}
}
}

最佳答案

您遇到的问题是mysqli_fetch_array()读取一次结果集的数据。当您读取最后一条记录后,后续调用 mysqli_fetch_array() 将返回 false。

你有两个选择。首先,您可以将记录读入数组并重复解析该数组。

while ($row = mysqli_fetch_array($homePlayersQuery)) {
$resultsArray[] = $row;
}
for ($i = 1; $i <= $homeTeamScore; $i++) {
foreach($resultsArray as $resultItem) {
do_something_here();
}
}

}

作为第二个选项,您可以将指针倒回到 mysql 结果集,以便可以再次开始读取结果。

for ($i = 1; $i <= $homeTeamScore; $i++) {

// Rewind the pointer to the start of the results
mysqli_data_seek($result, 0);
while ($row = mysqli_fetch_array($homePlayersQuery)) {
$resultsArray[] = $row;
}
}

关于PHP动态重复Mysqli结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29540695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com