好吧,我目前正在使用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;
当我回复$ json时,我已经成功生成了json响应,这是我得到的响应:
[
{
"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;
在我的php代码中,sql变量中的GROUP BY和HAVING COUNT命令不起作用,我仍然得到2个响应,结果不会得到nilai_evidence的总和。
我只需要从post获得1个结果并对查询进行SUM计算。
非常感谢任何帮助,谢谢。
答案 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));