根据php项目,关键传球哪队更多?

wen PHP项目 2

本文目录导读:

根据php项目,关键传球哪队更多?

  1. 先确认“关键传球”存在哪里
  2. 如果字段是 key_passes,PHP 写法
  3. 如果关键传球在事件表里,PHP 写法
  4. 如果项目里“关键传球”定义不同
  5. 最简单判断逻辑
  6. 你可以直接这样查

要判断“关键传球哪队更多”,需要结合你的 PHP 项目里的 数据表结构、字段含义 和 业务口径。
因为“关键传球”在不同项目里可能对应不同字段,

  • key_passes
  • keyPass
  • chances_created
  • through_balls
  • dangerous_passes
  • 或者由事件表统计出来的 pass 中满足某条件的记录

你可以按下面思路排查和统计。


先确认“关键传球”存在哪里

常见有两种设计:

方案 A:比赛统计表里直接有字段

例如表 match_stats:

id
match_id
team_id
team_name
key_passes

这种最简单,直接比较两队 key_passes。

方案 B:事件表里逐条记录传球

例如表 match_events:

id
match_id
team_id
player_id
event_type
event_subtype
minute

其中关键传球可能是:

event_type = 'pass'
event_subtype = 'key_pass'

这种需要分组统计。


如果字段是 key_passes,PHP 写法

假设表是 match_stats,字段有:

  • match_id
  • team_id
  • team_name
  • key_passes
<?php
$matchId = 1001; // 比赛ID
$sql = "SELECT team_name, key_passes
        FROM match_stats
        WHERE match_id = ?
        ORDER BY key_passes DESC";
$stmt = $pdo->prepare($sql);
$stmt->execute([$matchId]);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (count($rows) >= 2) {
    $team1 = $rows[0];
    $team2 = $rows[1];
    echo "{$team1['team_name']} 关键传球:{$team1['key_passes']}<br>";
    echo "{$team2['team_name']} 关键传球:{$team2['key_passes']}<br>";
    if ($team1['key_passes'] > $team2['key_passes']) {
        echo "{$team1['team_name']} 关键传球更多";
    } elseif ($team1['key_passes'] < $team2['key_passes']) {
        echo "{$team2['team_name']} 关键传球更多";
    } else {
        echo "两队关键传球一样多";
    }
}

如果关键传球在事件表里,PHP 写法

假设表 match_events:

id
match_id
team_id
team_name
event_type
event_subtype

关键传球条件:

event_type = 'pass'
AND event_subtype = 'key_pass'

SQL:

SELECT team_name, COUNT(*) AS key_passes
FROM match_events
WHERE match_id = ?
  AND event_type = 'pass'
  AND event_subtype = 'key_pass'
GROUP BY team_id, team_name
ORDER BY key_passes DESC;

PHP:

<?php
$matchId = 1001;
$sql = "SELECT team_name, COUNT(*) AS key_passes
        FROM match_events
        WHERE match_id = ?
          AND event_type = 'pass'
          AND event_subtype = 'key_pass'
        GROUP BY team_id, team_name
        ORDER BY key_passes DESC";
$stmt = $pdo->prepare($sql);
$stmt->execute([$matchId]);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (count($rows) >= 2) {
    $team1 = $rows[0];
    $team2 = $rows[1];
    echo "{$team1['team_name']} 关键传球:{$team1['key_passes']}<br>";
    echo "{$team2['team_name']} 关键传球:{$team2['key_passes']}<br>";
    if ($team1['key_passes'] > $team2['key_passes']) {
        echo "{$team1['team_name']} 关键传球更多";
    } elseif ($team1['key_passes'] < $team2['key_passes']) {
        echo "{$team2['team_name']} 关键传球更多";
    } else {
        echo "两队关键传球一样多";
    }
}

如果项目里“关键传球”定义不同

你需要确认业务定义,例如有些系统里:

  • 关键传球 = 传球后形成射门
  • 关键传球 = 传中 + 直塞 + 威胁球
  • 关键传球 = pass_type in ('through', 'cross', 'cut_back')

那 SQL 就要改成:

SELECT team_name, COUNT(*) AS key_passes
FROM match_events
WHERE match_id = ?
  AND event_type = 'pass'
  AND pass_type IN ('through', 'cross', 'cut_back')
GROUP BY team_id, team_name
ORDER BY key_passes DESC;

最简单判断逻辑

不管数据怎么来,最后比较逻辑都是:

if ($teamAKeyPasses > $teamBKeyPasses) {
    echo "A队关键传球更多";
} elseif ($teamAKeyPasses < $teamBKeyPasses) {
    echo "B队关键传球更多";
} else {
    echo "两队关键传球相同";
}

你可以直接这样查

如果你把表结构发我,

  • match_stats 有哪些字段
  • 或 match_events 的 event_type / event_subtype
  • 或你项目里“关键传球”字段名

我可以直接给你一段能跑的 PHP + SQL 代码,准确判断“哪队关键传球更多”。

抱歉,评论功能暂时关闭!