gpt4 book ai didi

php - 查询中的递归求和

转载 作者:搜寻专家 更新时间:2023-10-31 22:13:17 24 4
gpt4 key购买 nike

我有一个表,其中的数据使用邻接表分层存储,如下例所示

id     account parent1      root    null2      a1      13      b1      14      a2      25      a3      46      a4      27      b2      3

And a table where I keep values for these accounts

id_account    value2             102             104             205             306             10 

I made a function which returns all child account given a parent account:

function getChildrenAccount($parent_id)
{
$query = "SELECT id, account FROM accounts WHERE parent='{$parent_id}' ORDER BY account";
$result = mysql_query($query) or die(mysql_error());
while($r[]=mysql_fetch_assoc($result));
return $r;
}

我想做的是一个函数,它不仅返回子帐户,还返回所有值的总和,包括每个结果的子帐户。例如

getChildrenAccount(4)

将返回具有以下语法的数组

array(1) {   [0]=> array(3) {      ["id"]=> 5     ["account"]=> "a3"     ["sum"]=> 50 //a2 + a3}

And

getChildrenAccount(2)
array(2) {   [0]=> array(3) {      ["id"]=> 4     ["account"]=> "a2"     ["sum"]=> 70 //a1 + a2 + a3  [1]=> array(3) {      ["id"]=> 6     ["account"]=> "a4"     ["sum"]=> 30 //a1 + a4}

我想我必须在我的 while 语句中使用某种递归,但我有点困惑。你能帮帮我吗?

谢谢

最佳答案

function getChildrenAccount($accountID){

$query = ' SELECT id,account,sum(value) as `SUM`
FROM accounts,accountsValues
WHERE accounts.id = accountsValues.id_accounts
AND id = $accountID
OR id IN (SELECT id FROM accounts where parent = $accountID) ';
....
}

关于php - 查询中的递归求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10004715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com