大佬教程收集整理的这篇文章主要介绍了php – MySQL显示所有行和总和,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经阅读了关于这个问题的大约20个不同的答案,但要么我错误地理解了答案,要么只是没有点击.这是我的情况:
我有一张表,列出了食谱的成分.表中的列是:ingredient_id,ingredient_title,ingredient_oz,ingredient_grams,ingredient_lbs(磅)等.
我想列出每种成分,然后列出所有成分后,添加最后一行,总结所有的盎司,克,磅等.下面是我想要实现的输出的一个例子.
例:
INGREDIENT TITLE OZ GRAMS LBS
ingredient1 4 6 3
ingredient2 1 2 4
ingredient3 9 4 4
TOTAL 14 12 11
SELECT ingredient_title, ingredient_oz, ingredient_lbs, ingredient_grams, SUM(ingredient_oz) as oz_sum, SUM(ingredient_lbs) as lbs_sum, SUM(ingredient_grams) as grams_sum FROM ingredients
<!-- Beginning of table is here -->
<?PHP
while ($ingredientRow = $ingredients->fetch_assoc()) { ?>
<tr>
<td><?PHP echo $ingredientRow["ingredient_title"]; ?></td>
<td><?PHP echo $ingredientRow["ingredient_oz"]; ?></td>
<td><?PHP echo $ingredientRow["ingredient_lbs"]; ?></td>
<td><?PHP echo $ingredientRow["ingredient_grams"]; ?></td>
</tr>
<?PHP } ?>
</tbody>
<tfoot>
<tr>
<td>TOTALS</td>
<td><?PHP echo $ingredientRow["oz_sum"]; ?></td>
<td><?PHP echo $ingredientRow["lbs_sum"]; ?></td>
<td><?PHP echo $ingredientRow["grams_sum"]; ?></td>
</tr>
</tfoot>
</table>
<?PHP }?>
然而,所有这一切都返回第一行(成分1),并且不返回剩余的行或总和.然后,当我继续阅读有关此内容时,我看到很少有人讨论使用“分组依据”.那么我试过:
SELECT ingredient_title, ingredient_oz, ingredient_lbs, ingredient_grams, SUM(ingredient_oz) as oz_sum, SUM(ingredient_lbs) as lbs_sum, SUM(ingredient_grams) as grams_sum FROM ingredients GROUP BY ingredient_title
返回所有行,但同样不返回总和.我在错误的领域进行分组吗?我是否需要对每个我想要求和的字段进行分组?
解决方法:
当你运行一个查询时,你将得到你要求的数据,所以基本上如果你运行一个查询来单独返回所有行 – 你将得到那些回来,没有总数.另一方面,如果您运行查询以仅获取总和/总计,则不会获得单独的数据行.
有两种方法可以获得你想要的东西.一个是通过查询完成的,一个是通过PHP本身完成的.
SELECT
ingredient_title,
ingredient_oz,
ingredient_lbs,
ingredient_grams
FROM
ingredients
union all
SELECT
ingredient_title,
SUM(ingredient_oz) as oz_sum,
SUM(ingredient_lbs) as lbs_sum,
SUM(ingredient_grams) as grams_sum
FROM
ingredients
这将返回两者.
或者,您可以编写一个快速的PHP代码片段,根据查询的第一部分在代码中为您添加:
<?PHP
$sql="SELECT
ingredient_title,
ingredient_oz,
ingredient_lbs,
ingredient_grams
FROM
ingredients";
//Execute query:
while($result)
{
echo $result['ingredient_title'];
echo $result['ingredient_oz'];
// etc etc. Format as needed...
$ingOz+=$result['ingredient_oz'];
$ingLbs+=$result['ingredient_lbs'];
$ingGrams+=$result['ingredient_grams'];
}
// And Now the totals:
echo $ingOz;
echo $ingLbs;
// etc etc.
?>
我个人可能会使用第二种方法 – 您不需要让数据库运行查询两次只是为了获得结果 – 而且您已经获得了所有单独的数据行,因此您可以简单地保持一个简单的运行变量中的总计将根据需要显示.
以上是大佬教程为你收集整理的php – MySQL显示所有行和总和全部内容,希望文章能够帮你解决php – MySQL显示所有行和总和所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。