我想從我的 2 個 sql 數據庫中獲取數據并進行一些數學運算并將結果發布到數據庫中假設我的 table1 是這樣的+---+---+----------------------------+| A | B | C |+---+---+----------------------------+| 2 | 9 | result from A*B*D*E in php || 1 | 8 | result from A*B*D*E in php || 4 | 7 | result from A*B*D*E in php || 3 | 6 | result from A*B*D*E in php || 6 | 5 | result from A*B*D*E in php || 6 | 5 | result from A*B*D*E in php || 5 | 4 | result from A*B*D*E in php |+---+---+----------------------------+我的 table2 是這樣的+---+----+| D | E |+---+----+| 1 | 9 || 2 | 7 || 3 | 8 || 4 | 6 || 5 | 5 || 6 | 3 || 7 | 2 |+---+----+到目前為止我做了什么 // database connection include_once("config.php"); // Query $query = mysqli_query($conn, "SELECT * FROM table1"); $query2 = mysqli_query($conn, "SELECT * FROM table2"); //Source1 while($user_data1 = mysqli_fetch_array($query)) { $A[] = $user_data1['A']; $B[] = $user_data1['B']; } //Source2 while($user_data2 = mysqli_fetch_array($query2)) { $D[] = $user_data2['D']; $E[] = $user_data2['E']; } foreach (array_combine($A, $B) as $ValueA=> $ValueB) { foreach (array_combine($D, $E) as $ValueD=> $ValueE) { $result1 = $ValueA*$ValueB*ValueD*ValueE; $val = 0.123; $result2[] = $result1*$val; } $final result = min($result2); echo round($final result, 2); unset($result2); }我還沒有插入數據庫,但如果數學正確的話,仍然回顯調試,不知何故,此代碼發現了一些錯誤,例如使用我的數據庫,最終結果僅回顯/顯示 6 個數學結果,因為在 table1 中,第 5 行和第 6 行具有相同的數據我的 table1 和 2 中的課程有主鍵
2 回答

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
在這種情況下要更改 C,您甚至不需要 PHP。,
要使用多個表更新 MySQL 中的值,只需在選擇表時添加它們,如下所示:
UPDATE table1,table2 SET C = table1.A * table1.B * table2.D * table2.E WHERE C IS NULL;
執行此代碼一次將更新所有行,以便C = A*B*D*E
根據需要在 C 尚未設置或為 NULL 的情況下更新。如果您想更新所有行,只需刪除WHERE
條件即可
注意:有時(至少對我來說)當 SQL 查詢中沒有 WHERE 條件時,SQL 會發出警告。要繞過這個,只需WHERE 1=1
在末尾添加即可。

長風秋雁
TA貢獻1757條經驗 獲得超7個贊
只是為了我的理解:你想計算一個值來計算,你需要表 1 中的一些明確的數據,但也需要表 2 中的一些數據,但是哪一個?我想您想使用同一行中的數據(因此 table1 中的第 1 行和 table2 中的第 1 行、表 1 中的第 2 行和 table2 中的第 2 行),對嗎?現在你遇到了一個問題,因為當你創建一個時,select * from table
你不知道他們從數據庫中返回的順序。大多數情況下,它可能與您輸入的順序相同,但沒有保證。你說過每個表都有一個主鍵,你是如何定義它們的?我猜你可能有一個 id 列,所以你可以在該 id 上加入你的表?
- 2 回答
- 0 關注
- 122 瀏覽
添加回答
舉報
0/150
提交
取消