Php 给出意外结果的foreach循环

Php 给出意外结果的foreach循环,php,Php,我有一个用户表和一个高尔夫比赛分数表。当用户玩锦标赛时,他使用表单在结果表中记录分数。我想显示一个结果表,显示用户的完整列表和锦标赛中的分数。表中有八列分数——每门课一列。我正在努力使用php代码来显示结果分数。如果一名球员已经比赛,他的分数显示正确,但如果表中的下一名球员没有比赛,他的分数将显示为表中高于他的球员的分数。这将继续沿列表向下,直到遇到真正的分数。我试图找到这个问题的答案,但没有成功。这是我的代码,只针对一门课程。如果我能克服这个问题,我相信代码将适用于其他课程 $query =

我有一个用户表和一个高尔夫比赛分数表。当用户玩锦标赛时,他使用表单在结果表中记录分数。我想显示一个结果表,显示用户的完整列表和锦标赛中的分数。表中有八列分数——每门课一列。我正在努力使用php代码来显示结果分数。如果一名球员已经比赛,他的分数显示正确,但如果表中的下一名球员没有比赛,他的分数将显示为表中高于他的球员的分数。这将继续沿列表向下,直到遇到真正的分数。我试图找到这个问题的答案,但没有成功。这是我的代码,只针对一门课程。如果我能克服这个问题,我相信代码将适用于其他课程

$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);
}