首页 > 解决方案 > 试图计算一条狗在结果表中获得了多少特定类型的奖励

问题描述

我有一个狗展结果网站。我试图计算并显示一只狗有多少特定类型的奖励。有两张桌子。表 1 结果表 - 带有 ResultID、dog_id 和 Award(例如,我试图找出与 Award 列中的“DCC”匹配的字符串)。表 2 Dog 表 - 带有 dog_id。

我尝试过内部连接,但它无法正常工作。例如,计数应该显示 1,因为我知道某只狗只有 1 个“DCC”,但它显示 2505 不确定它是从哪里得到这个数字的?

<?php
 $query = "SELECT result.resultID, result.dog_id, result.award, COUNT(*) AS dcc
        FROM result INNER JOIN dogs
        ON result.dog_id = dogs.dog_id
        GROUP BY result.dog_id, result.award
        ORDER BY dcc";

        $select_all_dcc = mysqli_query($connection, $query);
        $dcc_counts = mysqli_num_rows ($select_all_dcc);
        echo    "<strong class='amount'>{$dcc_counts}</strong>"

标签: phpmysqlmysqli

解决方案


我设法用这段代码做到了

if (isset($_GET['dog_id'])) {
$query = "SELECT result.* , dogs.dog_name, shows.show_title, shows.show_id
FROM  `result` 
INNER JOIN  `dogs` ON result.dog_id = dogs.dog_id
INNER JOIN  `shows` ON result.show_id = shows.show_id
AND result.dog_id = " . $_GET['dog_id'] . " 
WHERE award = 'DCC' OR award = 'BCC'";

$select_all_dcc = mysqli_query($connection, $query);
$dcc_counts = mysqli_num_rows ($select_all_dcc);
echo    "<strong class='amount'>{$dcc_counts}</strong>";
                                            }

推荐阅读