You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改PHP代码实现SA:MP赌场玩家winnings总额统计展示?

解决方案:按玩家汇总赌场赢钱总额并展示

要实现按玩家汇总赢钱总额,核心是修改SQL查询语句,通过GROUP BY分组并使用SUM()计算总额,同时调整表格展示内容:

1. 修改SQL查询

将原查询替换为按玩家分组、计算总赢额的语句,并按总额降序排序(让赢最多的玩家排在最前面):

$w = Config::$g_con->prepare("SELECT `Username`, SUM(`Cash`) AS TotalWinnings FROM `logspacanea` GROUP BY `Username` ORDER BY TotalWinnings DESC");

2. 调整表格结构

由于汇总后不需要单条记录的时间(data字段),需要移除表格中的Data列:

  • 删除表头中的<th>Data</th>
  • 删除表格行中的<td>'.$user->data.'</td>

3. 更新输出逻辑

修改循环内的输出,展示玩家用户名和总赢额:

完整修改后的代码

<div class="panel" style="padding: 10px">

<?php if(!isset(Config::$_url[1])) { 

$w = Config::$g_con->prepare("SELECT `Username`, SUM(`Cash`) AS TotalWinnings FROM `logspacanea` GROUP BY `Username` ORDER BY TotalWinnings DESC");

$w->execute();

?>

<table class="table table-minimal">

    <thead>

        <tr>

            <th>USER</th>

            <th>Total Cash Winnings</th>

        </tr>

    </thead>

    <tbody>

    <?php $id = 1;

    while($user = $w->fetch(PDO::FETCH_OBJ)) {

        echo '

        <tr>

            <td>'.Config::formatName($user->Username).'</td>

            <td>'.$user->TotalWinnings.'</td>

        </tr>

        ';

        $id++;

    }

    ?>

    </tbody>

</table>

<?php } else { 

    
} ?>

</div>

补充说明

  • 如果需要保留玩家的最新赢钱时间,可以在SQL中添加MAX(data) AS LastWinDate,并在表格中新增对应列展示
  • 若Cash字段带有货币符号(如$)或千分位分隔符,需要确保字段是数值类型才能正确求和;如果是字符串类型,需先清理符号再转换为数值计算(例如使用SUM(REPLACE(REPLACE(Cash, '$', ''), '.', ''))处理格式)

内容的提问来源于stack exchange,提问作者GodlikeIGH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:34:56