乘法

2011-12-16 42 views
3

我希望能够通过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

选择4 * 5 AS'测试“或SELECT col1 * col2 AS'test' – djot 2011-12-16 19:29:37

+0

此外,为了安全起见,您需要转义变量$ d以防止sql注入。 `$ d = mysql_real_escape_string($ _ GET ['d']);` – dchrastil 2011-12-16 19:41:28

+0

mysql没有array_product – ajreal 2011-12-16 19:45:24

回答

6

这会工作,但有限制(编号应该是唯一的正数):

SELECT 10 * EXP(SUM(LOG(prices))) AS result 
FROM tablename 
WHERE ... 

的日Thnx应该去Napier和他的奇妙发明,logarithms

-1

它怎么不乘法?你得到0?你得到一个错误?

您可以在数据库中做的就是,记得

10 x (a + b + c + ...) 

是完全一样的

10a + 10b + 10c + ... 

所以,你可以简单地做

SELECT 10*SUM(prices) from ... 

SELECT SUM(10*prices) from ... 

但是,我注意到你没有任何错误处理。如果你的查询失败了,mysql_query()会返回一个布尔值false,然后你尝试去读取一行,这也会返回一个布尔值false。

布尔值false然后将在$行中,并将其用作数组,这意味着$ row [0]将是一个php NULL。 NULL * 10是整数0

更改您的查询电话是以下几点:

$results = mysql_query($sql) or die(mysql_error()); 

,看看弹出。