本文目录导读:

PHP项目统计定位球得分占比”,我理解您可能是在开发一个体育数据统计系统(比如足球、篮球等),需要计算“定位球”(如任意球、角球、点球等)在总进球数中所占的百分比。
由于您的描述比较精简,我为您提供两种最可能的情况及对应的PHP解决方案:
您已经有数据库表,需要写SQL/PHP统计
假设您有一个 goals 表,结构大致如下:
idmatch_idplayer_namegoal_type(penalty点球,free_kick任意球,corner角球,open_play运动战)created_at
PHP + MySQL 代码示例:
<?php
// 1. 数据库连接(假设使用 PDO)
$pdo = new PDO('mysql:host=localhost;dbname=your_db', 'user', 'pass');
// 2. 查询总进球数和定位球进球数
// 定位球类型:假设为 'penalty', 'free_kick', 'corner'
$sql = "SELECT
COUNT(*) AS total_goals,
SUM(CASE WHEN goal_type IN ('penalty', 'free_kick', 'corner') THEN 1 ELSE 0 END) AS set_piece_goals
FROM goals";
$stmt = $pdo->query($sql);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$total = (int)$row['total_goals'];
$setPiece = (int)$row['set_piece_goals'];
// 3. 计算占比(注意避免除零错误)
if ($total > 0) {
$percentage = round(($setPiece / $total) * 100, 2);
} else {
$percentage = 0;
}
echo "总进球数: " . $total . "\n";
echo "定位球进球数: " . $setPiece . "\n";
echo "定位球得分占比: " . $percentage . "%\n";
?>
您是指“罚球命中率”或“射门得分率”(定位球射门成功率)
如果您想统计的是“执行了10次定位球进攻,进了3个”,那么您需要统计机会(定位球进攻次数)和转化(进球数)。
代码逻辑调整:
// 假设有表 set_piece_attempts 记录定位球进攻机会
// 字段: id, match_id, is_goal (1=进球, 0=没进)
$sql = "SELECT
COUNT(*) AS total_attempts,
SUM(is_goal) AS goals_scored
FROM set_piece_attempts";
// 计算:$goals_scored / $total_attempts * 100
如果您需要针对特定球队、球员或赛季筛选
您只需要在上述SQL中加入 WHERE 条件即可,
WHERE match_id = 5 -- 某场比赛 WHERE player_id = 13 -- 某位球员 WHERE YEAR(created_at) = 2025 -- 本赛季
请进一步明确您的需求
为了给您更精准的代码,请您补充以下信息(任选其一或全部):
- 数据库表结构是什么?(有没有
goal_type字段?) - 您统计的是整支球队的历史数据,还是某场比赛的数据?
- 您需要按赛季、主客场或其他维度分组统计吗?
如果您能提供一段示例数据(JSON或表格),我可以直接帮您写出完整的、可直接运行的统计脚本。