Php MySQL行中的数据乘法
我想能够乘以所有的价格,例如从我的数据库,然后乘以10的总数 下面的代码做加法而不是乘法Php MySQL行中的数据乘法,php,mysql,Php,Mysql,我想能够乘以所有的价格,例如从我的数据库,然后乘以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 S
<?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);
?>
那就是我想要25*36*45*10,而不是25+36+45*10
希望有人能帮忙它怎么不做乘法呢?你得到了
0
?你有错误吗
您可以在数据库中按原样执行,记住这一点
10 x (a + b + c + ...)
完全一样
10a + 10b + 10c + ...
所以你可以简单地做
SELECT 10*SUM(prices) from ...
或
但是,我注意到您没有任何错误处理。如果查询失败,mysql_query()将返回布尔值false,然后尝试从中获取一行,该行也将返回布尔值false
该布尔值false将位于$row中,您将其用作数组,这意味着$row[0]将是一个php NULLNULL*10
将是整数0
将查询调用更改为以下内容:
$results = mysql_query($sql) or die(mysql_error());
并查看弹出的内容。这将起作用,但有限制(数字应仅为正值):
thnx应该转到和他的奇妙发明,选择4*5作为“test”或选择col1*col2作为“test”。此外,为了安全起见,您需要转义变量$d以防止sql注入<代码>$d=mysql\u real\u escape\u字符串($\u GET['d'])代码>mysql没有数组,OP不是计算10(a+b+c),而是计算10abc。我认为它们不是一个类似于乘积()的群函数,而不是SUM()。但是,不幸的是,这并不存在。使用
ROUND(X,2)
:我正要提出同样的建议。可惜MySql没有PRODUCT()函数。
SELECT SUM(10*prices) from ...
$results = mysql_query($sql) or die(mysql_error());
SELECT 10 * EXP(SUM(LOG(prices))) AS result
FROM tablename
WHERE ...