mysql, xml, php, flash - Problem mit Zeilenumbruch

MTMonline

Mitglied
Hi,

ich habe eine mysql-Datenbank mit der Tabelle Aktuelles.
Dort gibt es die Felder Datum, Überschrift und Text.

Die Daten lese ich über eine php-Datei aus und lade sie über xml in Flash.
Die Ausgabe funktioniert, jedoch gibt es noch ein Problem mit den Zeilenumbrüchen. Die Ausgabe sieht so aus:

Datum1 - Titel1
Text1


Datum2 - Titel2
Text2

Das Problem ist, dass bei mehreren Datensätzen der Abstand zwischen diesen zu groß ist.
Das <br> - Tag wird sozusagen verdreifacht.
Ich möchte das zwischen den Datensätzen ein normaler Absatz ist, also normalerweise 2 <br> Tags.

Woran kann das liegen?

Hier mein php und Actionscript Code:

PHP-Code:
PHP:
$link = mysql_connect("localhost","","");
mysql_select_db("test");

$query = 'SELECT * FROM aktuelles';
$results = mysql_query($query);

echo "<?xml version=\"1.0\"?>\n";
echo "<aktuelles>\n";

while($line = mysql_fetch_assoc($results)) {
	echo "<titel>" . $line[datum] . "&nbsp;-&nbsp;" . $line[ueberschrift] . "</titel>\n" .
		 "<beschreibung>" . $line[text] . "</beschreibung>" . "<br>";
	}

echo "</aktuelles>\n";

mysql_close($link);

Actionscript-Code:
Code:
stop();
System.useCodepage = true;

textStil = new TextField.StyleSheet(); //Styesheet-Objekt erstellen, das Textformatierungsregeln enthält 
textStil.load("test.css"); //Lädt die CSS-Datei 

feld.styleSheet = textStil; 

var theXML:XML = new XML(); 
theXML.ignoreWhite = true;

theXML.load("test.php?nocache=" + new Date().getTime()); //Lädt das XML-Dokument 

theXML.onLoad = function(verbunden) { 
    if (verbunden) { 
       	feld.text = stripNL (theXML);
		delete theXML; 
    } 
	
	else { 
        feld.text = "Es ist ein Fehler aufgetreten!"; 
	} 
};

 function stripNL(meinstring) { 
    meinstring = meinstring.toString();
    var s = chr(10); 
    meinstring = meinstring.split(s).join(""); 
    return meinstring; 
}

mfg
MTMonline
 
Hi,

nimm mal die <br>-Tags als der Ausgabe. Eigentlich dürfte das XML-Objekt gar nicht geparst werden (wenn, müsstest Du die Tags explitzit schließen: <br/>).

Gruß
.
 
Hi,

wenn ich das <br>-Tag aus der Ausgabe nehme dann sind zwischen den Datensätzen keine Absätze mehr. Die Ausgabe sieht dann so aus:

Datum1 - Titel1
Text1
Datum2 - Titel2
Text2

Ich kenn mich mit Actionscript nicht so gut aus.
Wie könnte ich es hinbekommen, dass zwischen den Datensätzen ein Absatz ist?

mfg
MTMonline
 
Hi,

poste wenn möglich mal die Ausgabe des PHP-Scriptes als Textdatei, die css-Datei und Deine fla. Ich kann mir im Moment nicht wirklich vorstellen, dass das so funktioniert, wie es aussieht.

Doppelte Zeilenumbrüche entstehen meistens durch "kompatible" Umbrüche (\r\n); diese entfernt allerdings schon die Funktion stripNL().

Gruß
.
 
Soweit, sogut - aber das kann nicht wirklich die Ausgabe der php-Datei sein; wo sind die Tags (<titel>, <beschreibung>) hin?

wenn Du bestimmte Tags mit CSS formatieren willst, solltest Du alles was dem Textfeld übergeben werden soll, in CDATA-Bereiche packen (wird nicht geparst) und die Baumstruktur drumherum fehlerfrei ausgeben.

Gruß
.
 
Zurück