Phil Z.: Nach dyn. erzeugtem Inhalt, keine HTML Ausgabe mehr

Beitrag lesen

Hallo,

Also hier nochmal die news.php

<?php  
// Voreinstellungen  
$artikel_anz_start=0;  
$artikel_anz_end=10;  
$num=10;  
$y=$_GET['a'];  
$z=$_GET['num'];  
if($y=='last'&&isset($z)){  
 $artikel_anz_start=$z;  
 $artikel_anz_end=$z+10;  
 $num=$artikel_anz_start;  
}  
$part='content';  
unset($forumarray); // Variablen korrekt (de)initialisieren  
unset($kindarray);  
  
  
// Daten aus der Datenbank holen  
$result=mysql_query("SELECT ID, PID, TID,  
       DATE_FORMAT(Zeitpunkt,'%T') AS Uhrzeit,  
                         DATE_FORMAT(Zeitpunkt,'%W %d.%M %Y') AS Datum,  
                            AutorName, Betreff, Text, num  
      FROM artikel  
                     ORDER BY Zeitpunkt DESC LIMIT ".$artikel_anz_start.", $artikel_anz_end");  
  
while($tmp = mysql_fetch_array($result)) {  // Ergebnis holen  
  $forumarray[ $tmp["ID"] ] = $tmp;          // Ergebnis im Array ablegen  
  $kindarray[ $tmp["PID"] ][] =  $tmp["ID"]; // Vorwärtsbezüge konstruieren  
}  
  
mysql_free_result($result);  
  
if(is_array($kindarray)) {  
     foreach($kindarray[0] as $thread) { // Für jedes Posting der obersten Ebene...  
  zeichneBaum($thread, $part, $num);  
     }  
}  
  
// Fußleiste der Beiträge(ganz unten / insgesamt)  
$enda=$artikel_anz_end+10;  
echo"<a href='index.php?p=news&a=last&num=".$num."' class='under2'>Letzten 10 News ( ".$artikel_anz_end." - ".$enda." )</a>";  
?>

Hier die Funktion "zeichneBaum()" und Funktion "changeDate()":

// Namen der Tage und Monate von Englisch in Deutsch ersetzen (erwartet String)  
function change_date($dates){  
 $array_1=array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');  
 $array_2=array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag');  
 $array_3=array('January','February','March','April','May','June','July','August','September','October','November','December');  
 $array_4=array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');  
 for($i=0;$i<=6;++$i){  
  if(strchr($dates,$array_1[$i])){  
    $dates=str_replace($array_1[$i],$array_2[$i],$dates);  
  }  
  if(strchr($dates,$array_3[$i])){  
    $datum=str_replace($array_3[$i],$array_4[$i],$dates);  
  }  
 }  
 return $datum;  
}  
  
  
// Berichte auslesen und ausgeben (schon formatiert) mit Anzahl der Kommentare  
function zeichneBaum($eintrag, $part, $id){  
 global $forumarray, $kindarray, $num_CM;  
  
 $datum=change_date($forumarray[$eintrag]['Datum']); // Datum übersetzen  
  
 // Anzahl der Kommentrare auslesen  
 $qu=mysql_query("SELECT COUNT(*) AS anz  
      FROM artikel  
                     WHERE num='".$forumarray[$eintrag]['ID']."'");  
  
 $num_CM=mysql_fetch_assoc($qu);  
  
 if($part=='comment'){// Wenn Comment Bereich  
   echo "  
   <div class='beitrag'>  
   <span class='date'>".$datum."  
   <span class='time'>".htmlentities($forumarray[$eintrag]['Uhrzeit'])."</span></span><br/>  
   <h2 class='title'>".htmlentities($forumarray[$eintrag]['Betreff'])."</h2>  
   <div class='artikel'><br/>".htmlentities($forumarray[$eintrag]['Text'])."<p></p></div>  
   <div class='under'><br/>Author: <a href='#'>".htmlentities($forumarray[$eintrag]['AutorName'])."</a>  
   | <span class='red'> Kommentare(".$num_CM['anz'].")</span>  
   | <a href='index.php?p=trackbacks&id=".$resultset['num']."'>Trackbacks(".$num_TB['anz'].")</a>  
   | <a href='#writeComment'>Kommentar schreiben</a><p></p></div>  
   <p></p></div>  
 ";  
 }elseif($part=='content'){// Wenn Content Bereich  
 echo "  
   <div class='beitrag'>  
   <span class='date'>".$datum."  
   <span class='time'>".htmlentities($forumarray[$eintrag]['Uhrzeit'])."</span></span>  
   <h2 class='title'>".htmlentities($forumarray[$eintrag]['Betreff'])."</h2>  
   <div class='artikel'><br/>".htmlentities($forumarray[$eintrag]['Text'])."<p></p></div>  
   <div class='under'><br/>Author: <a href='#'>".htmlentities($forumarray[$eintrag]['AutorName'])."</a>  
   | <a href='index.php?p=comments&id=".$forumarray[$eintrag]['ID']."'> Kommentare(".$num_CM['anz'].")</a>  
   | <a href='index.php?p=trackbacks&id=".$resultset['num']."'>Trackbacks(".$num_TB['anz'].")</a>  
   | <a href='index.php?p=comments&id=".$forumarray[$eintrag]['ID']."#writeComment'>Kommentar schreiben</a>  
   <p></p></div>  
 ";  
 }  
}  

Wenn ich
echo '<pre>';
print_r($kindarray[ $tmp["PID"] ]);
echo '</pre>';

mache dann kommt folgendes:
Array
(
    [0] => 5
)

Array
(
    [0] => 4
)

Array
(
    [0] => 5
    [1] => 3
)

Array
(
    [0] => 1
)

Array
(
    [0] => 1
    [1] => 2
)

Wenn ich das hier ausgebe:
echo '<pre>';
print_r($forumarray[ $tmp["ID"] ]);
echo '</pre>';

kommt:
Array
(
    [0] => 5
    [ID] => 5
    [1] => 1
    [PID] => 1
    [2] => 1
    [TID] => 1
    [3] => 23:40:21
    [Uhrzeit] => 23:40:21
    [4] => Wednesday 28.March 2007
    [Datum] => Wednesday 28.March 2007
    [5] => Max Mustermann
    [AutorName] => Max Mustermann
    [6] => Test
    [Betreff] => Test
    [7] => Na das wollen wir doch gleich mal testen.
    [Text] => Na das wollen wir doch gleich mal testen.
    [8] => 2
    [num] => 2
)

Array
(
    [0] => 4
    [ID] => 4
    [1] => 3
    [PID] => 3
    [2] => 1
    [TID] => 1
    [3] => 23:40:11
    [Uhrzeit] => 23:40:11
    [4] => Wednesday 28.March 2007
    [Datum] => Wednesday 28.March 2007
    [5] => Henryk Pl�tz
    [AutorName] => Henryk Pl�tz
    [6] => Eine noch kleinere Antwort
    [Betreff] => Eine noch kleinere Antwort
    [7] => Na klar
    [Text] => Na klar
    [8] => 1
    [num] => 1
)

Array
(
    [0] => 3
    [ID] => 3
    [1] => 1
    [PID] => 1
    [2] => 1
    [TID] => 1
    [3] => 23:39:59
    [Uhrzeit] => 23:39:59
    [4] => Wednesday 28.March 2007
    [Datum] => Wednesday 28.March 2007
    [5] => Max Mustermann
    [AutorName] => Max Mustermann
    [6] => Eine kleine Frage
    [Betreff] => Eine kleine Frage
    [7] => Kann das Forum auch Threads darstellen?
    [Text] => Kann das Forum auch Threads darstellen?
    [8] => 1
    [num] => 1
)

Array
(
    [0] => 1
    [ID] => 1
    [1] => 0
    [PID] => 0
    [2] => 1
    [TID] => 1
    [3] => 19:14:03
    [Uhrzeit] => 19:14:03
    [4] => Wednesday 28.March 2007
    [Datum] => Wednesday 28.March 2007
    [5] => Henryk Pl�tz
    [AutorName] => Henryk Pl�tz
    [6] => Test 1
    [Betreff] => Test 1
    [7] => Funktioniert das?
    [Text] => Funktioniert das?
    [8] => 0
    [num] => 0
)

Array
(
    [0] => 2
    [ID] => 2
    [1] => 0
    [PID] => 0
    [2] => 2
    [TID] => 2
    [3] => 19:14:03
    [Uhrzeit] => 19:14:03
    [4] => Wednesday 28.March 2007
    [Datum] => Wednesday 28.March 2007
    [5] => Hans Dampf
    [AutorName] => Hans Dampf
    [6] => Die Antwort auf die Frage nach Gott, dem Universum und dem ganzen Rest
    [Betreff] => Die Antwort auf die Frage nach Gott, dem Universum und dem ganzen Rest
    [7] => 42
    [Text] => 42
    [8] => 0
    [num] => 0
)

Hier kommt ein Screen aus der Datenbank-Tabelle:
Screen

Hier kommt die Seite so wie sie ist, den Bug könnt ihr direkt auf der Startseite betrachten, wenn wir wissen wollt wie es aussehen soll, dann klickt einfach bei einem der Beiträge auf "Kommentare()".
Klick

Wenn ich inder news.php
------
while($tmp = mysql_fetch_array($result)) {  // Ergebnis holen
  $forumarray[ $tmp["ID"] ] = $tmp;          // Ergebnis im Array ablegen
  $kindarray[ $tmp["PID"] ][] =  $tmp["ID"]; // Vorwärtsbezüge konstruieren
}
------
weglasse, oder
------
     foreach($kindarray[0] as $thread) { // Für jedes Posting der obersten Ebene...
  zeichneBaum($thread, $part, $num);
     }
------
weglasse, dann wird alles richtig angezeigt.

Es kommt keine Fehlermeldung.

Hoffe jetzt kann mir geholfen werden.

mfg

Phil Z.