Beste,
Ik heb een functie gemaakt die van een account alle sub-accounts ophaalt. Let op, de sub-accounts niveau gaan X aantal lagen diep. Een subaccount kan dus ook weer een subaccount hebben. Zo heb ik dus een functie gemaakt die ik steeds vanuit zichzelf opnieuw aanroep. Echter geeft het aanroepen van deze functie soms wel 10.000 queries, gewoon omdat sommige accounts wel 10.000 sub-sub-sub-sub accounts hebben. Nja goed, hoop dat het een beetje duidelijk is.
Nu is mijn vraag eigenlijk, kan dit ook in 1 query? Of in iedergeval wat korter.
Helaas is het voor mij niet mogelijk om een stored procedure te maken, dat was natuurlijk helemaal mooi geweest...
Ik heb een functie gemaakt die van een account alle sub-accounts ophaalt. Let op, de sub-accounts niveau gaan X aantal lagen diep. Een subaccount kan dus ook weer een subaccount hebben. Zo heb ik dus een functie gemaakt die ik steeds vanuit zichzelf opnieuw aanroep. Echter geeft het aanroepen van deze functie soms wel 10.000 queries, gewoon omdat sommige accounts wel 10.000 sub-sub-sub-sub accounts hebben. Nja goed, hoop dat het een beetje duidelijk is.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| function get_sub_ids($handle_id, $inner=false) { $sql = "SELECT handle_id FROM accounts WHERE parent_handle_id = '$handle_id' AND handle_id <> '$handle_id' ORDER BY handle"; //print "$sql"; $recordset = mysql_query_eval($sql); $num_rows = mysql_num_rows($recordset); if ($num_rows != 0) { while ($record = mysql_fetch_array($recordset)) { $sub_ids .= get_sub_ids($record[handle_id], true); $sub_ids .= $record[handle_id] .","; } } if($inner){ return $sub_ids; } else { return $sub_ids . $handle_id; } } |
Nu is mijn vraag eigenlijk, kan dit ook in 1 query? Of in iedergeval wat korter.
Helaas is het voor mij niet mogelijk om een stored procedure te maken, dat was natuurlijk helemaal mooi geweest...