Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL行中的数据乘法_Php_Mysql - Fatal编程技术网

Php MySQL行中的数据乘法

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

我想能够乘以所有的价格,例如从我的数据库,然后乘以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);
?> 
那就是我想要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 NULL
NULL*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 ...