【问题标题】:Calculating Percentage of total value计算总值的百分比
【发布时间】:2018-04-19 19:06:06
【问题描述】:

好的,我想知道总行数中正确的百分比 ( result=1 ) 结果 2 表示它仍然处于活动状态,因此只需要 result != 2 的总行数

我有以下代码,但没有显示任何内容 我做错了什么(公平地说我仍然半信半疑)

$successq = mysqli_query($con,"SELECT COUNT(*) FROM `table` 
WHERE `result` ='1'");

$success = mysqli_fetch_assoc($successq);

$totalq = mysqli_query($con,"SELECT COUNT(*) FROM `table` 
WHERE `result` !='2'");

$total = mysqli_fetch_assoc($totalq);

$percent = ($success/$total) * 100;

【问题讨论】:

    标签: php math mysqli percentage


    【解决方案1】:

    您需要为COUNT(*) 添加别名,然后您需要使用该别名来获取值。

    你需要echo你的最终输出。

    像下面这样:-

    $successq = mysqli_query($con,"SELECT COUNT(*) as success FROM `table` 
    WHERE `result` ='1'");//success used as alias
    
    $success = mysqli_fetch_assoc($successq);
    
    $totalq = mysqli_query($con,"SELECT COUNT(*) as total FROM `table` 
    WHERE `result` !='2'");// total use as alias
    
    $total = mysqli_fetch_assoc($totalq);
    
    
    echo $percent = ($success['success'] /$total['total'] ) * 100;// use aliases and echo the output
    

    注意:- mysqli_fetch_assoc() 返回关联数组,所以不能作为变量使用。您必须使用它的关联索引从中获取值(就像我在 echo $percent = ($success['success'] /$total['total'] ) * 100; 中所做的那样)。

    【讨论】:

    • 再次感谢,我知道这是我没有发现的傻事
    • @ChrisYates 很高兴为您提供帮助。尝试仔细阅读 php 手册。你会自己知道自己做错了什么。
    【解决方案2】:

    因为mysqli_fetch_assoc 返回数组不是单个值。所以改变你的代码如下:

    $successq = mysqli_query($con,"SELECT COUNT(*) as total FROM `table` 
    WHERE `result` ='1'");
    $success = mysqli_fetch_assoc($successq);
    $success_cnt = $success["total"];
    $totalq = mysqli_query($con,"SELECT COUNT(*) as total FROM `table` 
    WHERE `result` !='2'");
    $total = mysqli_fetch_assoc($totalq);
    $total_cnt = $total["total"];
    $percent = ($success_cnt /$total_cnt ) * 100;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 2020-12-08
      相关资源
      最近更新 更多