我正在查询数据库。然后将结果值插入数组并找到它们的总和。这是代码:
$result=mysql_query("SELECT items FROM mytable WHERE user_id='$id'");
$array=array();
while($row=mysql_fetch_assoc($result)){
//insert values into array
$array=$row;
$sum=array_sum($row);
echo $sum;
}
这只返回数组中的项而不是总和。我该如何纠正? Ps:我之前在这里试过这个,但它把正确的结果减半:
$result=mysql_query("SELECT items FROM mytable WHERE user_id='$id'");
$row = mysql_fetch_array($result, MYSQL_NUM);
$sum = array_sum($row);
echo $sum;
由于
答案 0 :(得分:8)
为什么不使用SELECT sum(items) FROM mytable WHERE userid="$id"
?如果你将这种东西推到数据库服务器上,你将节省CPU。
答案 1 :(得分:0)
$result = mysql_query("SELECT items FROM mytable WHERE user_id='$id'");
$array = array();
$sum = 0;
while($row=mysql_fetch_assoc($result)){
//insert values into array
$array[] = $row;
$sum += $row;
}
echo $sum;
如果您需要数组和相应的总和,这将是代码。如果您只需要总和,那么如果您让数据库通过将查询转换为总结来进行总结,那将会更有效率
$result = mysql_query("SELECT SUM(items) FROM mytable WHERE user_id='$id'");
$sum = mysql_fetch_assoc( $result );
答案 2 :(得分:0)
使用数据库层通常比业务逻辑更快
$result=mysql_query("SELECT SUM(items) AS mysum FROM mytable WHERE user_id='$id'");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
/* always use assoc to prevent yourself from errors after table's modification */
echo $row['mysum'];