我试图总结this数据库中的所有值但由于某些原因我无法做到,我看了遍遍堆栈溢出并尝试了多种方法,但似乎都没有。我目前的代码是
<?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'
来添加列中的所有值时,我不想这样做。请帮忙 !
答案 0 :(得分:0)
尝试以下查询:
$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
答案 1 :(得分:0)
您现在想要将rankprice的总和值放在同一个等级中。因此sum()的结果将与一个sql中的排名不同。您应该通过添加group by子句来告诉mysql,该子句按排名对表进行分组并获取每个组的sum()。
$s=mysqli_query($con, "SELECT sum(rankprice) FROM cost WHERE rank='$i' GROUP BY rank ");