在while循环中添加mysql_num_rows的总数

时间:2011-10-17 02:49:52

标签: php mysql

例如,我在另一个查询的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%等等..

1 个答案:

答案 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) . '%';
}