Mit*_*tch 2 php mysql mysqli sum
我有一个像这样的数字表:
______________________________________
| axle_id | train_id | axle | distance |
|_________|__________|______|__________|
| 1 | 1 | 1 | 20 |
| 2 | 1 | 2 | 50 |
| 3 | 1 | 3 | 200 |
| 4 | 1 | 4 | 50 |
| 5 | 1 | 5 | 200 |
| 6 | 1 | 6 | 50 |
| 7 | 1 | 7 | 200 |
| 8 | 1 | 8 | 50 |
|_________|__________|______|__________|
Run Code Online (Sandbox Code Playgroud)
现在我想计算它们并用SUM进行计算.我现在的代码:
function count_axles($id) {
$sql = "SELECT sum(distance)/(25000)*(100) as totaldistance from axle WHERE train_id = :train_id";
$sth = $this->pdo->prepare($sql);
$sth->bindParam(":train_id", $id, PDO::PARAM_STR);
$sth->execute();
return $sth->fetchAll();
}
Run Code Online (Sandbox Code Playgroud)
我通过以下方式调用此函数:
<?php
$count_axle = $database->count_axles($_GET['train_id']);
?>
<?php
foreach($count_axle as $counting){
}
echo $counting['totaldistance'];
?>
Run Code Online (Sandbox Code Playgroud)
现在输出是正确的.
(3.2800000000000002)这是25.000的百分比
但我想添加5000像:
$sql = "SELECT sum(distance)+(5000)/(25000)*(100) as totaldistance from axle WHERE train_id = :train_id";
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,输出产生一些随机的东西,如: 840
为什么会这样做,我该如何解决这个问题?
基础数学.你在做
5000
sum(distance) + --------------
25000 * 100
Run Code Online (Sandbox Code Playgroud)
什么时候你真的想要
sum(distance) + 5000
------------------------
25000 * 100
Run Code Online (Sandbox Code Playgroud)
尝试
SELECT (sum(distance)+(5000))/(25000)*(100)
^--------------------^
Run Code Online (Sandbox Code Playgroud)
代替.注意额外的括号.
并记住旧的BEDMAS助记符:括号,指数,除法,乘法,加法,减法......
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |