Php 给出意外结果的foreach循环
我有一个用户表和一个高尔夫比赛分数表。当用户玩锦标赛时,他使用表单在结果表中记录分数。我想显示一个结果表,显示用户的完整列表和锦标赛中的分数。表中有八列分数——每门课一列。我正在努力使用php代码来显示结果分数。如果一名球员已经比赛,他的分数显示正确,但如果表中的下一名球员没有比赛,他的分数将显示为表中高于他的球员的分数。这将继续沿列表向下,直到遇到真正的分数。我试图找到这个问题的答案,但没有成功。这是我的代码,只针对一门课程。如果我能克服这个问题,我相信代码将适用于其他课程Php 给出意外结果的foreach循环,php,Php,我有一个用户表和一个高尔夫比赛分数表。当用户玩锦标赛时,他使用表单在结果表中记录分数。我想显示一个结果表,显示用户的完整列表和锦标赛中的分数。表中有八列分数——每门课一列。我正在努力使用php代码来显示结果分数。如果一名球员已经比赛,他的分数显示正确,但如果表中的下一名球员没有比赛,他的分数将显示为表中高于他的球员的分数。这将继续沿列表向下,直到遇到真正的分数。我试图找到这个问题的答案,但没有成功。这是我的代码,只针对一门课程。如果我能克服这个问题,我相信代码将适用于其他课程 $query =
$query = "SELECT * FROM emg_users ORDER BY user_login";
$results=mysql_query($query);
$results_array = array();
while ($row = mysql_fetch_array($results)) {
$results_array[$row['ID']] = $row;
}
foreach ($results_array as $id => $record) {
$player = $record['user_login'];
?>
<tr>
<td class="padded_c" nowrap="nowrap"><?php echo $player;?></td> <!-- Player name -->
<?php
$query = "SELECT * FROM 0_tournament_test WHERE player = '".$player."' AND course = 'St_Andrews'";
$results=mysql_query($query);
$results_array = array();
while ($row = mysql_fetch_array($results)) {
$results_array[$row['id']] = $row;
}
foreach ($results_array as $id => $record) {
$pplayer = $record['player'];
if ($pplayer = $player) {
$sta = $record['score'];
}
else {
unset($sta);
}
$id++;
}
?>
<td class="padded_c" nowrap="nowrap"></td>
<td nowrap="nowrap"><?php echo $sta;?></td>
<td nowrap="nowrap"><?php echo $rsg;?></td>
<td nowrap="nowrap"><?php echo $bet;?></td>
<td nowrap="nowrap"><?php echo $oak;?></td>
<td nowrap="nowrap"><?php echo $kia;?></td>
<td nowrap="nowrap"><?php echo $cng;?></td>
<td nowrap="nowrap"><?php echo $mer;?></td>
<td nowrap="nowrap"><?php echo $oly;?></td>
<td nowrap="nowrap"><?php echo $allshots;?></td>
<td nowrap="nowrap"><?php echo $sss;?></td>
<td nowrap="nowrap"><?php echo '';?></td>
</tr>
<?php
$id++;
}
?>
</table>
$query=“按用户登录从emg\u用户订单中选择*”;
$results=mysql\u query($query);
$results_array=array();
while($row=mysql\u fetch\u数组($results)){
$results\u数组[$row['ID']]=$row;
}
foreach($results_数组作为$id=>$record){
$player=$record['user_login'];
?>
我想你忘记登录了
您的代码几乎没有变化:--
将此条件添加到您的代码中…经过此修改后仍然不起作用,但感谢您的回答
unset($sta);
???您想清空$sta
值而不是使用$sta=''
。还是想将玩家的分数之和添加$sta+=$record['score']
我使用“unset”的原因是为了确保变量在循环的每次迭代中都是空的。这显然不起作用,因为一旦设置了变量,它就会保持在该值,直到更改为循环生成的下一个值。这当然不是我想要的,但我找不到解决问题的方法。
if ($pplayer == $player) {
$sta = $record['score'];
}
else
{
unset($sta);
}