我不确定这是不是php或mysql数学问题。
我有一个充满数据的表,虽然我可以使用php将各个数据回显到屏幕或echo和各个数据。我不知道如何对数据本身进行数学运算。
为简单起见,假设我的表有4列,一列是id列,另外三列是我希望在其中加倍的数据,data1,data2和data 3,
并且布置了这样的东西
id data1 data2 data3
1 2.5 2.6 2.7
2 2.6 7.0 8.2
3 3.0 1.8 6.0
我希望能够做如下的数学.... data1(row1)x data(row2)x data3(row)或data1(column2)x data(column 3)x data3(column3)。
我能够使用while循环来循环数据,但我只能用各种字段名称及其值回显到屏幕上的每一行。我不知道如何将不同行中的字段相乘。实际上我也希望能够现在只将多个行组合在一起,还可以添加它们,将它们分开等等。
可能需要执行此操作的最终数据表可能包含许多列并且具有多行。但我基本上坚持如何获取所有数据,每列一个,并让它一次一个地做数学,把它放在循环中? 任何想法
欢呼声
答案 0 :(得分:3)
所以你说你有
id data1 data2 data3
1 2.5 2.6 2.7
2 2.6 7.0 8.2
3 3.0 1.8 6.0
并且您想要计算主对角线条目的产品(忽略id
列)?
从您的问题中不清楚这是您想要做的,或者您是否只想为每行计算data1 * data2 * data3
。
如果是后者:你应该在MySQL中这样做。在select语句的列列表中添加一个额外的列:
SELECT
id,
...,
data1 * data2 * data3 AS product
FROM
...
如果是前者:你应该用PHP而不是MySQL来做这件事。您可以通过设置多维数组来完成此操作。
你可能有类似这样的代码:
while ( $row = mysqli_fetch_assoc($query_result) ) {
echo $row['id'].' '.$row['data1'].' '.$row['data2'].' '.$row['data3'];
}
我们会将其更改为以下内容:
$myarray = array();
while ( $row = mysqli_fetch_assoc($query_result) ) {
$myarray[] = array($row['data1'], $row['data2'], ['data3']);
}
现在,如果添加以下内容:
echo '<pre>';
var_dump($myarray);
echo '</pre>';
你会看到我们有一个二维数组。
现在,如果我们想要找到该数组中对角线条目的乘积,我们可以使用它:
$product = $myarray[0][0] * $myarray[1][1] * $myarray[2][2];