PHP MYSQL中的SUM和循环

时间:2016-11-11 17:46:51

标签: php mysql json

好吧,我目前正在使用php中的SUM和循环数组。

这是我的PHP代码:



<?php

require_once 'koneksi.php';

if(isset($_POST['id_gejala'])) {
	
	$val = $_POST['id_gejala'];
	
	for($i="0"; $i < sizeof($val); $i++) {
		
		$seldata = mysqli_query($con, "SELECT a.`kode_evidence`, a.`kode_hipotesa`, a.`nilai_evidence`, b.`probabilitas`, SUM(a.`nilai_evidence`) AS `total_evidence` FROM `evidence` AS a INNER JOIN hipotesa AS b ON a.`kode_hipotesa` = b.`kode_hipotesa` WHERE `kode_evidence` ='".$val[$i]."' GROUP BY a.`kode_hipotesa` HAVING COUNT(*) >= 1 ") or die (mysqli_error($con));
		
		while($data1=mysqli_fetch_assoc($seldata)){
			$data[]=$data1;
		}
	}
}

$json = json_encode($data);
echo $json;

?>
&#13;
&#13;
&#13;

当我回复$ json时,我已经成功生成了json响应,这是我得到的响应:

&#13;
&#13;
[
{
"kode_evidence":"1",
"kode_hipotesa":"1",
"nilai_evidence":"0.9",
"probabilitas":"0.09",
"total_evidence":"0.8999999761581421"
},
{
"kode_evidence":"2",
"kode_hipotesa":"1",
"nilai_evidence":"0.4",
"probabilitas":"0.09",
"total_evidence":"0.4000000059604645"
}
]
&#13;
&#13;
&#13;

在我的php代码中,sql变量中的GROUP BY和HAVING COUNT命令不起作用,我仍然得到2个响应,结果不会得到nilai_evidence的总和。

我只需要从post获得1个结果并对查询进行SUM计算。

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

您仅在您在分组中设置的列的一部分上使用聚合功能..

这可以为此列respctec的ggregated函数

的值反转不相关的值

对于您的查询,可能是这些列中的列的价值是相同的 当你可以使用(假)聚合函数来避免返回更多的那一行

  "SELECT 
          min(a.`kode_evidence`)
        , a.`kode_hipotesa`
        , min(a.`nilai_evidence`)
        , min(b.`probabilitas`)
        , SUM(a.`nilai_evidence`) AS `total_evidence` 
  FROM `evidence` AS a 
  INNER JOIN hipotesa AS b ON a.`kode_hipotesa` = b.`kode_hipotesa` 
  WHERE `kode_evidence` ='".$val[$i]."' 
  GROUP BY a.`kode_hipotesa` 
  HAVING COUNT(*) >= 1 ") or die (mysqli_error($con));