无限级服务端数据组织方案的实现,提供解决方案,其中数据库查询可替换为List的方式查找等其它方式。
function queryAllSubCustomers($cstId) {
$sqlA="SELECT ID, Name, ParentID FROM T_CustomerInfo WHERE ID = $cstId ";
$custList=Sql_Query($sqlA);
$AllCustInfs=array();
$result=array();
while(count($custList) > 0) {
// 组建当前客户列表,获取所有id
$countNum = count($custList);
$subCustIds=" (";
//print_r($custList);
for ($i=0; $i<$countNum; $i++) {
$custInf = $custList[$i];
$node=array();
$node['id']=$custInf['ID'];
$node['text']=$custInf['Name'];
array_push($AllCustInfs,$node);
$subCustIds = $subCustIds.$custInf['ID']."," ;
}
$subCustIds = substr($subCustIds,0,-1).") ";
// 查询下级客户
$sql="SELECT ID, Name, ParentID FROM T_CustomerInfo WHERE ParentID <> 0 AND ParentID IN $subCustIds ";
unset($subCustIds);
unset($custList);
$custList=Sql_Query($sql);
//print_r($custList);
}
return $AllCustInfs;
}