foreach循环给出意想不到的结果

时间:2014-02-05 12:35:43

标签: php

我为这些用户提供了一个用户表和一个高尔夫锦标赛分数表。当用户玩锦标赛时,他使用表格在结果表中记录分数。我想显示一个结果表,显示用户的完整列表和锦标赛中的分数。表中有八列分数 - 每个课程一个。我正在努力与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>

1 个答案:

答案 0 :(得分:1)

我想你忘记了一些登录......

代码变化不大: -

if ($pplayer == $player) {
    $sta = $record['score'];
} 
else
{
    unset($sta);
}

将此条件添加到您的代码中......