У меня была эта функция, и она извлекала данные из базы данных.В настоящее время это только выборка данных до этого уровня.
Ledger > Group > Subgroup
Если в подгруппе есть больше детей, она не умеет читать.Данные в таблице будут иметь бесконечный цикл, если accountMainID
не равно нулю в запросе SUBGROUP .Любая идея, как я могу получить все данные, пока не больше цикла.Ценю вашу помощь.
> Subgroup > ChildSubgroup > more.. > more.. > ..
function getOverViewGroup(){
global $ehorsObj;
$accountLedgerID = (isset($_POST['accountLedgerID']) ? $_POST['accountLedgerID'] : '');
$MainArray = array();
$json_response = array();
/* LEDGER */
$sqlLedger = "SELECT accountLedgerID, accountLedgerName, active
FROM tblAccAccountLedger
WHERE active = 'y'
AND accountLedgerID = '" .$accountLedgerID. "'
ORDER BY accountLedgerName ASC ";
$GetResult = $ehorsObj->FetchData($sqlLedger, $ehorsObj->DEFAULT_PDO_CONNECTIONS);
while ($row = $GetResult->fetch()) {
$ledgerID = $row['accountLedgerID'];
/* GROUP */
$sqlGroup = " SELECT accountID, accountName, active
FROM tblAccAccounts
WHERE accountLedgerID = '" .$ledgerID. "'
AND accountSub = 'n' ";
$group = array();
$GetGroup = $ehorsObj->FetchData($sqlGroup, $ehorsObj->DEFAULT_PDO_CONNECTIONS);
while ($row2 = $GetGroup->fetch()) {
$accountID = $row2['accountID'];
$subGroup = array();
/* SUBGROUP */
$sqlSubGroup = " SELECT accountID, accountMainID, accountName, active
FROM tblAccAccounts
WHERE accountLedgerID = '" .$ledgerID. "'
AND accountMainID = '" .$accountID. "'
AND accountSub = 'y' ";
$GetSubGroup = $ehorsObj->FetchData($sqlSubGroup, $ehorsObj->DEFAULT_PDO_CONNECTIONS);
while ($row3 = $GetSubGroup->fetch()) {
$subGroup[] = $row3;
}
$group[] = array('accountID' => $row2['accountID'], 'accountName' => $row2['accountName'] , 'active' => $row2['active'], 'items' => $subGroup);
}
$MainArray = array('ledgerID' => $row['accountLedgerID'] , 'accountLedgerName' => $row['accountLedgerName'], 'active' => $row['active'],'items' => $group );
array_push($json_response, $MainArray);
}
header("Content-type: application/json");
$result = json_encode($json_response, JSON_NUMERIC_CHECK, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
echo $result;
}
Пример данных в tblAccAccounts