我希望能够将所有价格乘以我的数据库,然后将总数乘以10。
下面的代码执行加法而不是乘法
<?php
$d = $_GET['d'];
$con = mysql_connect("localhost","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("databasename", $con);//
$sql= "SELECT SUM(prices) FROM tablename WHERE Date = '$d' AND Prices >0.20 AND Type= 'sold'";
$results = mysql_query($sql);
$row = mysql_fetch_array($results);
echo $row[0]*10;
mysql_close($con);
?>
例如
id prices
1 25
2 36
3 45
我想要25 * 36 * 45 * 10而不是25 + 36 + 45 * 10
希望任何人都可以提供帮助
答案 0 :(得分:6)
这会有效,有限制(数字应该只是正数):
SELECT 10 * EXP(SUM(LOG(prices))) AS result
FROM tablename
WHERE ...
thnx应该去 Napier
和他的精彩发明 logarithms
答案 1 :(得分:-1)
如何不进行乘法运算?你得到0
?你得到一个错误?
您可以按原样在数据库中执行此操作,请记住
10 x (a + b + c + ...)
与
完全相同10a + 10b + 10c + ...
所以你可以简单地做
SELECT 10*SUM(prices) from ...
或
SELECT SUM(10*prices) from ...
但是,我注意到您没有任何错误处理。如果你的查询失败,mysql_query()将返回一个布尔值false,然后你从中尝试获取一行,这也会返回一个布尔值假。
那个boolean false将在$ row中,并且你将它用作数组,这意味着$ row [0]将是一个php NULL。 NULL * 10
将为整数0。
将查询调用更改为以下内容:
$results = mysql_query($sql) or die(mysql_error());
看看弹出的是什么。