首先获取人名,然后根据此名称使用COUNT检索外部数据

时间:2018-01-23 20:12:16

标签: php mysql pdo

我正在制作一个运动解决方案,通过播放到网页从游戏中检索数据。 现在我被困在一个时刻从mysql数据库中检索玩家名称,放入boxscore表(已完成),然后根据此名称检索所有统计数据。 例如 - 他创造了多少分,与他的名字相关的助攻数等等。

最后我想得到这种表格(所有格式化/造型完成并准备就绪):

这是一个php代码,问题基于“echo”点。 我无法找到正确的方法来计算多少助攻a.e.玩家在同一个请求中制作。

<?php

require "connection.php";

$game_id = 1760;
$player = 'KURBANOV, NIKITA';
$team = 'CSKA Moscow';

$stmt = $pdo->prepare('SELECT * FROM game_results WHERE game_id = :game_id AND team = :team AND action = "Assist" ORDER BY player DESC');
$stmt->execute(array('game_id' => $game_id, 'team' => $team ));
$result = $stmt -> fetchAll();

echo '<table class="table table-condensed table-hover"><tbody>';
echo '<thead>
                <tr>
                  <th>Name</th>
                  <th>POS</th>
                  <th>MIN</th>
                  <th>PTS</th>
                  <th>OREB</th>
                  <th>DREB</th>
                  <th>TREB</th>
                  <th>AST</th>
                  <th>STL</th>
                  <th>TOV</th>
                  <th>Fm</th>
                  <th>Fc</th>
                </tr>
              </thead>';

foreach( $result as $row ) {
    echo '<tr>';
    echo '<td>'.$row['player'].'</td>';
    echo '<td>'.$row['action'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '<td>'.$row['game_id'].'</td>';
    echo '</tr>';
}
echo '</tbody></table>';

这是db数据示例:

DB example

1 个答案:

答案 0 :(得分:0)

编辑完成后我想我猜想你想做什么。

您想要计算您在特定玩家的桌面和特定行动中拥有的次数。

SELECT player,
    Count(CASE action
            WHEN 'Assist' THEN 1
            ELSE 0
            end) AS assists,
    Count(CASE action
            WHEN '<other case>' THEN 1
            ELSE 0
            end) AS other_case
FROM   `game_results`
WHERE  1
GROUP  BY player

上面的SQL Select应该做你想做的事情,用你曾经拥有的东西替换other case

编辑:

您应该能够像以前一样打印出来:

<?php
// your other code ...
echo '<table class="table table-condensed table-hover"><tbody>';
echo '<thead>
                <tr>
                <th>Name</th>
                <th>assists</th>
                <th>other case</th>
                </tr>
            </thead>';

foreach( $result as $row ) {
    echo '<tr>';
    echo '<td>'.$row['player'].'</td>';
    echo '<td>'.$row['assits'].'</td>';
    echo '<td>'.$row['other_case'].'</td>';
    echo '</tr>';
}
echo '</tbody></table>';