Php 获取while循环内的总百分比

Php 获取while循环内的总百分比,php,mysql,Php,Mysql,例如,在另一个查询的while循环内的查询中,有一个mysql_num_rows results为4,8,15,16,23,42。我的问题是如何获得while循环中mysql\u num\u行的每个结果的百分比?示例:4,8,15,16,23,42。总数是108$总和=108。4=4/$sum=3.7%、8=8/$sum=7.4%的百分比,依此类推。您可以将所有值存储在一个数组中,并在从数据库检索数据后进行计算 乙二醇 .那么你是说你希望$sum先于单个结果,对吗?在提取单个结果之前,您可以执行

例如,在另一个查询的while循环内的查询中,有一个mysql_num_rows results为4,8,15,16,23,42。我的问题是如何获得while循环中mysql\u num\u行的每个结果的百分比?示例:4,8,15,16,23,42。总数是108$总和=108。4=4/$sum=3.7%、8=8/$sum=7.4%的百分比,依此类推。

您可以将所有值存储在一个数组中,并在从数据库检索数据后进行计算

乙二醇


.

那么你是说你希望$sum先于单个结果,对吗?在提取单个结果之前,您可以执行一个简单的附加查询以获取总和。使用聚合函数。也可以在SQL结果中获取百分比。这意味着一个稍微复杂一点的查询,但不是一个额外的查询。

如果你发布了你的代码,我敢打赌你会得到一个带有代码的答案,这可能很有用。:-)可能重复的
$datastore = array();
$total = 0;

while(list($amount) = mysql_fetch_row($result)) {
    $datastore[] = $amount;
    $total += $amount;
}

foreach ($datastore as $amount) {
  echo $amount," - ";
  printf("%5.2f", $amount/$total);
  echo "\r\n";
}
$values = array(4, 8, 15, ...);

$sum = array_sum($values);

foreach($values as $value) {
    echo ($value / $sum) * 100;
}