【问题标题】:How to get percentages out of a MySQL Table? [duplicate]如何从 MySQL 表中获取百分比? [复制]
【发布时间】:2015-09-23 15:15:20
【问题描述】:
$getKills = mysqli_query($connection, "SELECT * FROM Kills");
$getMurderer = mysqli_query($connection, "SELECT * FROM Kills WHERE Killer='$getUser->Username'");
$numKills = mysqli_num_rows($getKills);
$numKiller = mysqli_num_rows($getMurderer);

我如何获得玩家在所有杀戮中的百分比?

例如如果记录了 20 次击杀,而玩家只有 6 次击杀,它会说

玩家在 $numKills 中有 30% 的击杀数

【问题讨论】:

  • 请提供一些示例数据。
  • 您可以使用 PHP 编码做到这一点,只需使用这些变量

标签: php mysql


【解决方案1】:

试试这个

$getKills = mysqli_query($connection, "SELECT * FROM Kills");
$getMurderer = mysqli_query($connection, "SELECT * FROM Kills WHERE Killer='$getUser->Username'");

$getKillsCount = count($getKills);
$getMurdererCount = count($getMurderer);

if(empty($getKillsCount) || empty($getMurdererCount))
{
    echo 'One of Count is Empty';
}
else
{
    $precentage = ($getKillsCount/$getMurdererCount)*100;
    echo $precentage;
}

【讨论】:

  • 你检查过你的代码吗?
  • @Tiber 使用圆形函数
【解决方案2】:

通常,您可以这样做:

SELECT table.*, COUNT(*) / Table.total * 100

或者只是使用 PHP 并做数学题:

$percentage = ($playerKills / $allKills) * 100;

【讨论】:

    【解决方案3】:

    试试这个,

        SELECT 
                  CONCAT(
                          ROUND(COUNT(*) /
                               (SELECT COUNT(*) FROM Kills)*100,2)
                         ,'%') 
                AS pcr_kills,
                  (SELECT COUNT(*) FROM Kills) 
                AS tot_kills
        FROM 
                Kills 
        WHERE 
                Killer='$getUser->Username';
    

    但是,建议在应用程序端执行此过程!如果 表太大,服务器将毫无价值的负担。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 2019-09-13
      • 1970-01-01
      相关资源
      最近更新 更多