如何汇总php列中的值
我试图总结数据库中的所有值,但由于某些原因我做不到,我查看了所有堆栈溢出,并尝试了多种方法,但似乎都不起作用。我现在的代码是如何汇总php列中的值,php,sql,Php,Sql,我试图总结数据库中的所有值,但由于某些原因我做不到,我查看了所有堆栈溢出,并尝试了多种方法,但似乎都不起作用。我现在的代码是 <?php error_reporting(0); //INCLUDES// include 'config.php'; //INCLUDES// //DATA FETCH// $rank=$_POST['R']; $drank=$_POST['DR']; //DATA FETCH// //MYSQL STUFF// $con=mysqli_connect($
<?php
error_reporting(0);
//INCLUDES//
include 'config.php';
//INCLUDES//
//DATA FETCH//
$rank=$_POST['R'];
$drank=$_POST['DR'];
//DATA FETCH//
//MYSQL STUFF//
$con=mysqli_connect($ip,$login,$password,$dbname);
for ($i = $rank; $i <= $drank; $i++) { // LOOP UNTIL 20 IS MET
$s=mysqli_query($con, "SELECT sum(rankprice) FROM cost WHERE rank='$i'");
if($s === FALSE) { //CHECK IF DATA IS THERE
die('Error: ' . mysqli_error($con)); // IF NOT THERE SEND ERROR
}
$row = mysqli_fetch_array($s); //PUT DATA IN ROW
echo $row[0];
}
?>
它连接到数据库没有问题。当我使用
echo$row[0]时代码>它按顺序打印列的所有值。我试着把它放入一个数组并打印出来,但似乎也不行。唯一可行的方法是通过删除SQL代码中的WHERE rank='$I'
来添加列中的所有值,这是我不想做的。请帮忙 尝试以下查询:
$rankarr = array();
for ($i = $rank; $i <= $drank; $i++) { // LOOP UNTIL 20 IS MET
$rankarr[] = $i;
}
$rankarr = implode(',', $rankarr);
$s=mysqli_query($con, "SELECT sum(rankprice) As myrank FROM cost WHERE rank in ($rankarr)");
if($s === FALSE) { //CHECK IF DATA IS THERE
die('Error: ' . mysqli_error($con)); // IF NOT THERE SEND ERROR
}
$row = mysqli_fetch_array($s); //PUT DATA IN ROW
$rankarr=array();
对于($i=$rank;$i您现在希望在同一个秩中获得rankprice的和值。因此sum()的结果将不同于一个sql中的秩。您应该通过添加group by子句告诉mysql,该子句按秩对表进行分组,并获得每个组的sum()
$s=mysqli_query($con, "SELECT sum(rankprice) FROM cost WHERE rank='$i' GROUP BY rank ");
试过了,我重新分配了echo以适应AS,但它仍然按如下顺序打印所有内容:1313141416202025253040您能解释一下您想要什么样的逻辑吗?从代码中,您似乎正在查询表中唯一的特定列组,因此总和将始终返回相同的值。例如,对于列组->1,只有一个条目如果表中有,那么where子句(rank=1)的sum(rankprice)将只返回9。我想将该列中符合“rank=”$I“”的所有行相加,我得到了我想要的所有数字,我只是不知道如何将它们相加=/使用此查询:mysqli_query($con),“选择sum(rankprice)作为myrank FROM cost where rank in($rankarr))其中,$rankarr是一个以逗号分隔的列组值的数组,例如1,2,3。您有可能在整个代码中实现它,因为我遇到了一些错误,我不知道如何修复它们。错误:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以了解在“where rank=”附近使用的正确语法5''在第1行,该sql代码出错。抱歉,最后只是追加group by。我犯了一个错误。您可以先在phpMyadmin中尝试sql。杰克,您的答案非常简短。您可能需要添加一些解释。