Anzeige Problem

m4rtin

Grünschnabel
Hallo!

Ich möchte mir eine Startseite basteln die wie das vbb aufgebaut ist. Dafür verwende ich folgenden Code:
PHP:
<?PHP

$sql =  mysql_query("SELECT MainforumID, MainforumName, MainforumDescription, MainforumOrder, ForenID, ForenName, ForenDescription, ForenMainforumID, ForenOrder FROM pms_mainforum, pms_foren WHERE ForenMainforumID = MainforumID ORDER BY ForenOrder ASC, ForenMainForumID ASC");

while($Foren =  mysql_fetch_array($sql)) {

$MainforumID = $Foren["MainforumID"];
$MainforumName = $Foren["MainforumName"];
$MainforumDescription = $Foren["MainforumDescription"];
$ForenID = $Foren["ForenID"];
$ForenName = $Foren["ForenName"];
$ForenDescription = $Foren["ForenDescription"];


?>

Jedoch wird dann jedes Mainforum + Unterforum einzeln angezeigt. zb

Mainforum 1
Forum 1
Mainforum 2
Forum 2
Mainforum 1
Forum 3

Aussehen soll es aber:

Mainforum 1
Forum 1
Forum 3
Mainforum 2
Forum 2

Ich hoffe ihr könnt mir helfen.
 
Du musst eine Funktion schreiben, die in der Tabelle nachschaut, ob das Forum ein Unterforum ist, zB anhand einer ParentID. Wenn diese UNGLEICH Null ist, ist das Forum ein Unterforum, und muss anders dargestellt werden. Nun wird die Funktion von sich selbst aufgerufen, um zu checken, ob das Forum (weitere) Unterforen hat. Soweit die Theorie. :)
 
hab schonmal etwas ähnliches für ein menü á la verzeichnisstruktur geschrieben.

hilft dir vielleicht.

PHP:
 function subEntrys($id, $str_repeat = 0) {
	$res = mysql_query('SELECT caption, id FROM menu WHERE parent = ' . $id); 	
	if(mysql_affected_rows() == 0){
		return FALSE;
	} else {
		$vararr = array();
		while($row = mysql_fetch_array($res)){
			$width = $str_repeat*25;
			echo str_repeat('&nbsp;, '$str_repeat);
			if(mysql_affected_rows() != 0){
				subEntrys($row['id'], $str_repeat+1);
			}
		}
	}
 }
 

 $res = mysql_query('SELECT caption, id FROM menu WHERE parent = 0');

 while($mainItems = mysql_fetch_array($res)) {
	$sub = subEntrys($mainItems['id'], 1);
 }

die unterpunkte sind sogar etwas eingerückt.
 
Zurück