2017-06-19 118 views
-3

我有一个SUM查询没有返回正确的值。 它返回1,不是值mysql SUM没有给出正确的值

有2项在表中都具有amount列值200 所以SUM应该返回400 ..没有1

我的查询低于

谢谢

$owtbdq = mysqli_query($con,"SELECT * FROM `crm`.`workshop-otherwork` WHERE `wsjid` = '$wsjid'"); 
     $owtbdr = mysqli_fetch_assoc($owtbdq); 
     $owtbdc = mysqli_query($con,"SELECT SUM(amount) FROM `crm`.`workshop-otherwork` WHERE `wsjid` = '$wsjid'"); 
     $owtbdcount = mysqli_fetch_assoc($owtbdc); 

我也试了一下没有`周围量和相同的结果

我刚才在HeidiSQL跑

SELECT SUM(amount) FROM `crm`.`workshop-otherwork` WHERE `wsjid` = '4' 

,并正确地返回400所以还没有一个线索

+0

SELECT SUM(量)FROM crm.workshop-otherwork WHERE wsjid = $ wsjid。在phpmyadmin上直接运行它并查看结果 –

+0

这就是为什么应该使用有意义的变量名称。 – NathanOliver

+1

名称是有意义的我 $ owtbd =做其他工作 $ wtbd =工作要做 仅仅因为你不知道他们的意思并不意味着自己或其他人在我公司犯规 –

回答

-2

打印一个var_dump(),我猜你得到一个资源链接。 您的查询是正确的,而不是您的PHP代码。

编辑:对不起,它返回一个标识 - >http://php.net/mysqli_fetch_assoc

$owtbdc = mysqli_query($con,"SELECT SUM(amount) FROM `crm`.`workshop-otherwork` WHERE `wsjid` = '$wsjid'"); 

if ($owtbdcount = mysqli_fetch_array($owtbdc)) { 
    echo $owtbdcount[0]; 
} 
+1

根本不显示从var_dump –

2

你应该取

$owtbdr = mysqli_fetch_assoc($owtbdc); 
1

你在mysqli_fetch_assoc($owtbdq);,你写$owtbdq第二请求($ owtbd Ç)没有做SUM。你应该做这样的

mysqli_fetch_assoc($owtbdc);

$owtbdq = mysqli_query($con,"SELECT * FROM `crm`.`workshop-otherwork` WHERE `wsjid` = '$wsjid'"); 
$owtbdc = mysqli_query($con,"SELECT SUM(`amount`) FROM `crm`.`workshop-otherwork` WHERE `wsjid` = '$wsjid'"); 
$owtbdr = mysqli_fetch_assoc($owtbdq); 
+0

$ owtbdr = mysqli_fetch_assoc($ owtbdq);是我没有做SUM的查询结果 –

+0

金额列的数据类型是什么? –

+0

是的,但您在'mysqli_fetch_assoc($ owtbdq)'中使用'$ owtbdq'这个变量。你应该使用'$ owtbdc'而不是 –

0
$row = mysqli_fetch_row($owtbdc) 
$value = $row[0] 

我想这会工作。

0

固定它

它最后被作为数组返回所以没有 $ newtotal = array_sum($ owtbdcount)

奏效

感谢帮助家伙

+0

很好,但是你有没有相关的代码应该在第一位发布? 'array_sum()'突然出现在哪里?你在使用其他功能吗? –

+0

没有所有的代码在那里.. dunno只是试了一下,它的工作 –

+0

我仍然认为添加一个别名的查询将(也)工作。你应该尝试一下,看看;-) –