关于SQL数据的PHP数学

时间:2010-09-01 20:05:34

标签: php mysql math loops

我不确定这是不是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循环来循环数据,但我只能用各种字段名称及其值回显到屏幕上的每一行。我不知道如何将不同行中的字段相乘。实际上我也希望能够现在只将多个行组合在一起,还可以添加它们,将它们分开等等。

可能需要执行此操作的最终数据表可能包含许多列并且具有多行。但我基本上坚持如何获取所有数据,每列一个,并让它一次一个地做数学,把它放在循环中? 任何想法

欢呼声

1 个答案:

答案 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];