Hallo Forum,
ich benutze eine Funktion um ein dynamische Verzeichniss aus einer DB auszulesen.
Die Funktion ruft sich selber auf. Soweit so gut.
Jetzt bekomme ich aber auch das Ergebnis meheremale ausgegeben.
Leider in rücklaufender Reihenfolge, damit meine ich, wenn die Funktion 3 mal durchgelaufen ist, bekomme ich erst das
Ergebnis 3, dann 2, dann 1.
Hier mal der Quellcode.
Ich hoffe mir kann jemand Helfen.
Danke!
Tom
@wahsaga
Sorry!
ich benutze eine Funktion um ein dynamische Verzeichniss aus einer DB auszulesen.
Die Funktion ruft sich selber auf. Soweit so gut.
Jetzt bekomme ich aber auch das Ergebnis meheremale ausgegeben.
Leider in rücklaufender Reihenfolge, damit meine ich, wenn die Funktion 3 mal durchgelaufen ist, bekomme ich erst das
Ergebnis 3, dann 2, dann 1.
Hier mal der Quellcode.
PHP-Code:
function makeElementPath($theid){
$id = $theid;
if(!ctTools::isNumber($id)){
$id = $GLOBALS['CT_CONTENT_OBJECT']->getIdByIdentifier($id);
}
$sql = 'SELECT * FROM ct_content WHERE(id=%u)';
$sql = sprintf($sql,
$id
);
//echo 'SQL: '.$sql.'<br />';
if( (!$this->db_obj->query($sql) ) ||
($this->db_obj->getRowCount() <= 0)){
return $result;
}
$this->db_obj->getData();
$data = $this->db_obj->data;
if( ($data['parent_id'] > $this->getRootID()) &&
($data['parent_id'] != $this->getRootID()) ){
//echo 'Parent ID ist da <br />';
if($data['content_type'] == 'container'){
//echo 'content_type ist container <br />';
if(count($this->element_path) <= 0){
//echo 'result ist <= 0 <br />';
$sql = 'SELECT * FROM ct_content
WHERE( (parent_id = %u) AND (state_exec=\'y\'))';
$sql = sprintf($sql,
$id
);
if( (!$this->db_obj->query($sql) ) ||
($this->db_obj->getRowCount() <= 0)){
return $this->element_path;
}
$this->db_obj->getData();
array_push($this->element_path,$this->db_obj->data['identifier'].
'.'.$this->getContentExtension($this->db_obj->
data['content_extension']));
}
array_push($this->element_path,$data['identifier']);
} else if($data['content_type'] == 'content') {
//echo 'content_type ist content <br />';
array_push($this->element_path,$data['identifier'].'.'.$this->
getContentExtension($data['content_extension']));
}
//echo 'Nochmal <br />';
$this->makeElementPath($data['parent_id']);
}
}
Danke!
Tom
@wahsaga
Sorry!
Kommentar