rekursivt kald som returnerer sql
HejJeg har gang i et debatforum, som er bygget op på denne måde.
databasen er postgre:
CREATE TABLE "px_topics" (
"topic_id" int4 DEFAULT
"parent_id" int4,
"root_id" int4,
"name" varchar(255),
"description" text,
"modify_dt" timestamptz,
"author" varchar(255),
"author_host" varchar(255),
"email" varchar(255),
"svarbesked" bool,
"create_dt" timestamptz,
);
Essensen i tabellen er at root_id angiver om indlægget ingen parent har, i så fald, bliver indlægget listet øverst i træstrukturen. Noget i stil med dette :
ID:82 Ceres tur nu på onsdag???
ID:83 Re: Ceres tur nu på onsdag???
ID:84 Re: Re: Ceres tur nu på onsdag???
Jeg har følgende sql/php:
$rootsql = "SELECT parent_id AS p_id, \"name\", topic_id AS t_id, root_id AS r_id FROM \"px_topics\" WHERE parent_id ='0' ORDER BY \"create_dt\" DESC";
function children($p_id, $r_id, $conn){
if(is_numeric($p_id) AND is_numeric($r_id)){
$sql = "SELECT * FROM \"px_topics\" WHERE root_id = '$r_id' AND topic_id <> '$r_id'";
$childresult = pg_exec($conn, $sql);
if(!$childresult){
break;
}else{
for ($q = 0; $q < pg_numrows($childresult); $q++ ) {
$post = pg_fetch_array($childresult, $q);
$topic_id = $post["topic_id"];
$parent_id = $post["parent_id"];
$root_id = $post["root_id"];
$name = $post["name"];
echo " <tr><td>\n <table border='0' cellpadding='0' cellspacing='0' width='100%'>\n";
echo " <tr><td class='forumindent'>ID:".$topic_id." ".$name."<br></td></tr>\n";
echo " </table>\n </td>\n</tr>";
}
}
}else{
break;
}
}
spørgsmålet er hvor jeg skal kalde funktionen "children" igen i funktionen for at skidtet virker.....
