【问题标题】:How to count amount of students per university如何计算每所大学的学生人数
【发布时间】:2020-11-18 00:19:12
【问题描述】:

我有一个大学生的 SQL 数据库,包含以下详细信息:

    Table_name: register
    Column_names: position, tertinst

数据库中的数据将如下所示:

    Coach..........UCT
    Athlete........Tukkies
    Official.......University of JHB
    Athlete........Tukkies
    Athlete........Tshwane Tech
    Manager........UCT

我需要计算每个大学(tertinst)的运动员(位置)学生数量,输出必须是这样的:

   UCT.....................735
   University of Jhb.......668
   Tukkies.................886

这是我的尝试:

$positionx = 'Athletes';

include_once 'core/includes/db_connect.php';

$sql = "SELECT tertinst, COUNT(position) FROM register WHERE position = '$positionx' GROUP BY tertinst ";

$result = $conn->query($sql);
while ($row = mysql_fetch_array($result)) {
    echo $row['COUNT(tertinst)'] . '......' . $row['COUNT(position)'];
}

$conn->close();

执行代码时我没有得到任何结果,并且我已经搜索了几个小时的不同解决方案,但没有成功。

【问题讨论】:

  • 好吧,不是你的问题,但是.... 使用 mysqli 函数而不是已弃用的 mysql 函数。查看准备好的安全语句并尝试获取有用的错误或警告,查看您的 error.log
  • 错字?将while($row = mysql_fetch_array($result)) 替换为foreach($result as $row)

标签: php sql count echo distinct


【解决方案1】:

我犯了一些错误,并更正了 sql 计数中的语法,以及 echo。这是我的问题的解决方案:

    <?php

include_once 'core/includes/db_connect.php';

$sql = "SELECT tertinst, COUNT(*) total FROM register WHERE position = 'Athletes' GROUP BY tertinst ";
$result = $conn->query($sql);

while ($row = $result->fetch_assoc()) {
    $tertinst = $row["tertinst"];

    echo $tertinst . '......' . $row['total'] . '<br>';
}
$conn->close();

【讨论】:

  • 到底是什么问题?如果这是一个错字,您是否真的认为人们将来会发现这个问题并发现这个解释很有用。如果问题只是拼写错误,您可以删除问题。
  • 错字只是犯错的一种表达方式。我的答案是网络上的 sql 计数解决方案的组合,它应该可以帮助任何需要做类似事情的人。可以清楚的看到sql count和echo的语法是不一样的。
  • 我更正了 PHP 开始标签。 &lt;?php 应该代替 &lt;? 如果您的代码中有错误,请也修复它
  • 谢谢!我会的。
猜你喜欢
  • 1970-01-01
  • 2021-04-21
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 2021-10-23
相关资源
最近更新 更多