我是php, sql等的新手,我试图创建一个简单的成员系统来获取分数和平均特定对,但我没有得到正确的结果。
控制器:
<?php
$records = array();
$avg = array();
if($results = $conn->query("SELECT * FROM table")) {
if($results->num_rows) {
while($row = $results->fetch_object()) {
$records[] = $row; //Appending value to array
$avg[] = $row;
}
$avg['charAvgScore'] = ($avg['charPreviousScore'] + $avg['charCurrentScore']/2);
$results->free();
}
}
?>
print_r (avg)结果
(
[0] => stdClass Object
(
[memberID] => 5
[charName] => Someguy
[charClass] => Cabalist
[charLevel] => 53
[charPreviousScore] => 4
[charCurrentScore] => 4
[charAvgScore] => 0
)
[1] => stdClass Object
(
[memberID] => 6
[charName] => Otherguy
[charClass] => Abolisher
[charLevel] => 53
[charPreviousScore] => 8
[charCurrentScore] => 8
[charAvgScore] => 0
)
[charAvgScore] => 0
)
charPreviousScore返回一个"未定义索引",$avg的值为0
您可以在SQL查询中使用:
<?php
$records = array();
$avg = array();
if($results = $conn->query("SELECT *, ((charPreviousScore + charCurrentScore) / 2) AS charAvgScore FROM table")) {
if($results->num_rows) {
while($row = $results->fetch_object()) {
$records[] = $row; //Appending value to array
}
$results->free();
}
}
?>
结果应该是:
(
[0] => stdClass Object
(
[memberID] => 5
[charName] => Someguy
[charClass] => Cabalist
[charLevel] => 53
[charPreviousScore] => 4
[charCurrentScore] => 4
[charAvgScore] => 4
)
[1] => stdClass Object
(
[memberID] => 6
[charName] => Otherguy
[charClass] => Abolisher
[charLevel] => 53
[charPreviousScore] => 8
[charCurrentScore] => 8
[charAvgScore] => 8
)
)
你应该在你的结果循环中进行计算。
int i = 0;
while($row = $results->fetch_object()) {
$records[] = $row;
$avg[] = $row;
$avg[i]['charAvgScore'] = ($row['charPreviousScore'] + $row['charCurrentScore']/2)
i++;
}