只要根据自己的情况修改相关的查询语句,然后只要传入一个顶层的ID就可以得出所属的所有ID
function GetSon($PID='')
{
$this->dataconnect();
if($PID=='') return;
$returnSiteID = null;
if($PID == 0)
{
$returnSiteID = $this->db->GetCol("SELECT SiteID FROM cms_r_site WHERE PublishMode=1 ORDER BY SiteID ASC");
}elseif(is_array($PID)){
foreach ( $PID as $SID)
{
$returnSiteIDTemp = $this->db->GetCol("SELECT SiteID FROM cms_r_site WHERE ParentID=".$SID." AND PublishMode=1 ORDER BY SiteID ASC");
if(!empty($returnSiteIDTemp))
{
if(empty($returnSiteID))
{
$returnSiteID = $returnSiteIDTemp;
}else{
$returnSiteID = array_merge($returnSiteID, $returnSiteIDTemp);
}
}
}
}elseif(!empty($PID)){
$returnSiteID = $this->db->GetCol("SELECT SiteID FROM cms_r_site WHERE ParentID=".$PID." AND PublishMode=1 ORDER BY SiteID ASC");
}else{
$returnSiteID = null;
}
if(!empty($returnSiteID))
{
if(empty($this->retrunSite))
{
$this->retrunSite = $returnSiteID;
}else{
$this->retrunSite = array_merge($this->retrunSite, $returnSiteID);
}
$this->GetSon($returnSiteID);
}
return $this->retrunSite;
}
}
本文介绍了一个PHP函数,用于递归地查询并返回指定顶级ID下所有的子节点ID。该函数能够处理单一ID或ID数组,并通过修改SQL查询语句以适应不同的应用场景。
886

被折叠的 条评论
为什么被折叠?



