它计算,但从第二行开始。
<?php
include('connect-db.php');
$query = "select * from users";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$sold= array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$sold=$row['contract']+$row['tva'];
echo "<table><tr><td>" . $sold. "</td></tr></table>";
}
?>
答案 0 :(得分:2)
您的代码有很多问题:
由于以下行,您的代码开始从第二行开始计算:
$row = mysql_fetch_array($result);
从while
循环之前的已打开记录集中获取第一个结果。
$sold = array();
为什么这是一个数组?
如果您要求和$sold
,请将变量威胁为整数,并使用0
初始化。
$sold = 0;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
$sold += $row['contract']+$row['tva'];
echo "<table><tr><td>" . $sold. "</td></tr></table>";
在我看来,您可能只想打印一次表。如果是这样,请考虑使用类似SUM()
的聚合函数查询数据库:
SELECT SUM(contract + iva) AS contractIva FROM users GROUP BY <some column in your table>;
以上允许删除while
循环。
答案 1 :(得分:1)
由于您已使用$row = mysql_fetch_array($result);
从结果中提取了一行,因此脚本开始仅添加下一行。正确的代码是:
<?php
include('connect-db.php');
$query = "select * from users";
$result = mysql_query($query);
$sold= array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$sold=$row['contract']+$row['tva'];
echo "<table><tr>
<td>" . $sold. "</td>
</tr></table>";
}
?>
答案 2 :(得分:0)
你也可以通过查询来做到这一点,这样你就不需要在application level
上执行计算,database level
可以为你完成这项工作。
select sum(col1+col2) as total from users
你想要一个表而不是多个表我想,如果是,那就这样做:
echo "<table>
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$sold=$row['contract']+$row['tva'];
echo <tr><td>" . $sold. "</td></tr>";
}
echo "</table>";