如何在从MySQL检索的表行中添加值?

时间:2014-10-02 14:27:32

标签: php mysql sum

我想要的是在从MySQL检索的表格行中添加值。

这是我的PHP文件:

<?php

mysql_connect('localhost','root','');
mysql_select_db('accounts');
$sql= "SELECT * FROM users1";
$list=mysql_query($sql);

?>
<html>
<head>
<title>Welcome to ScanNShop</title>
</head>
<h1>Welcome to ScanNShop</h1>

<body>

<table width="600" border="1" cellpadding="1" cellspacing="1">
<tr>

<th>No.</th>
<th>Name</th>
<th>Price</th>
<tr>

<?php

while ($users1=mysql_fetch_assoc($list)) {

echo "<tr>";

echo "<td>".$users1['pid']."</td>";

echo "<td>".$users1['name']."</td>";

echo "<td>".$users1['price']."</td>";

}

?>

</table>
</body>
</html  >

这是PHP文件的输出。

No. Name    Price
1   bread   2.00
2   milk    2.00 
3   janabab 6797994.00
4   jajajsh 846494.00

我想将所有价格加起来并显示echo "Total:" thetotal

3 个答案:

答案 0 :(得分:1)

我保持您的代码简单并添加更改 我可以给你一个其他的代码,但如果你学习php

,这很容易理解

我在变更中添加了评论

mysql_connect('localhost','root','');
mysql_select_db('accounts');
$sql= ('SELECT * FROM users1');
$list=mysql_query($sql);

?>
<html>
<head>
<title>Welcome to ScanNShop</title>
</head>
<h1>Welcome to ScanNShop</h1>

<body>

<table width="600" border="1" cellpadding="1" cellspacing="1">
<tr>
<th>No.</th>
<th>Name</th>
<th>Price</th>
</tr>

<?php
 //set total to zero
$total=0;
while ($users1=mysql_fetch_assoc($list)) {

echo "<tr>";

echo "<td>".$users1['pid']."</td>";

echo "<td>".$users1['name']."</td>";

echo "<td>".$users1['price']."</td>";
//set total to the price + the previous total
$total = $users1['price']+$total;

echo "</tr>";

}
//display total
echo '<tr><td></td>';
echo '<td>Total:</td>';
echo '<td>'.$total.'</td></tr>';

?>

</table>
</body>
</html  >

答案 1 :(得分:1)

另一种对数据行求和的方法是使用GROUP BY .. WITH ROLLUP (doc)在SQL查询本身内。

示例:

SELECT Number, Min(Name) AS Name, SUM(amount) AS Price
  FROM grocery_list
 GROUP BY Number WITH ROLLUP

将产生输出:

Number  Name      Price
1       bread     2.00
2       milk      2.00 
3       janabab   6797994.00
4       jajajsh   846494.00
NULL    bread     7644492.00

具有NULL的行是组(数字)组的 ALL 记录中的MIN(名称),SUM(价格)。 然后,您可以根据哪个字段为NULL来过滤输出,以确定如何显示。

答案 2 :(得分:0)

您可能只需要在特殊变量中对结果求和吗?

$sum = 0;
while ($users1=mysql_fetch_assoc($list)) {
    $sum += $users1['price'];

    echo '<tr>';
    echo '<td>'.$users1['pid'].'</td>';
    echo '<td>'.$users1['name'].'</td>';
    echo '<td>'.$users1['price'].'</td>';
    echo '</tr>';
}

echo '<tr>';
echo '<td></td>';
echo '<td>Total</td>';
echo '<td>'.$sum.'</td>';
echo '<tr>';

不要对字符串使用双引号(&#34;)。使用单引号(&#39;); 并且不要使用mysql_ *函数,不推荐使用它们。