例如,我在另一个查询的while循环内的查询中有一个4,8,15,16,23,42的mysql_num_rows结果。我的问题是如何在while循环中总结所有结果? (共133条)谢谢。
编辑:
如果我想在while循环中获取mysql_num_rows每个结果的百分比怎么样?示例:4,8,15,16,23,42。总计108. $ sum = 108.百分比4 = 4 / $ sum = 3.7%,8 = 8 / $ sum = 7.4%等等..
答案 0 :(得分:1)
尝试这样的事情:
$Sum = 0;
while ($SomeInvariant)
{
mysql_query($SomeQuery);
$Sum += mysql_num_rows();
}
echo 'The sum is: ' . $Sum;
但是,这种方法效率不高(如果$SomeInvariant
适用于多次迭代,并且您的应用程序拥有更多并发用户,那该怎么办?)。为了解释这一点,我建议重构你的方法,以便在SQL中完成添加。这样,您的查询可能如下所示:SELECT SUM(ColumnName) FROM ...
。
更新:在评论中解决后续问题
如果您还没有查询中可用的总和,那么您将必须循环数据集两次。在第一遍,你将计算总和。在第二遍,您将计算每个值与总和的比率。
例如:
$Sum = 0;
$Rows = array();
while ($SomeInvariant)
{
mysql_query($SomeQuery);
$Value = mysql_num_rows();
$Rows[] = $Value; // Push the value onto the row array
$Sum += $Value; // Add the value to the cumulative sum
}
echo 'The sum is: ' . $Sum;
foreach ($Rows as $Row)
{
echo $Row . '/' . $Sum . ' = ' . number_format($Row / $Sum) . '%';
}