PHP Ausgelesener Text hält sich nicht an <article>Box

Spliffy83

Cadet 4th Year
Registriert
Feb. 2013
Beiträge
73
Moin,
ich habe ein kleines Problem bei einer Seite die ich für mich zu Hause schreibe.
Die Seite wird über ein css File formatiert und ist unter anderem über die html-Tags <section> und <article> strukturiert.
Wenn ich nun einen statischen Text in ein <article>Tag gebe wird dieser auch entsprechend der Größe der <article> Box formatiert.
Lese ich einen solchen Text jedoch aus der MySQL Datenbank (Feldtyp: Text) aus, ignoriert dieser den rechten Rand der <article> Box.
Kann einer von euch erklären wieso das so sein könnte? Ich verstehe gerade überhaupt nicht was ich hier falsch gemacht habe...-.-
Ich hoffe, dass reicht an Infos und mir kann jemand helfen : ) (Bin leider nicht so gut im Programmieren...)

Vielen Dank schon mal!



Hier der css code (der html-Coode befindet sich in einem div-Container #main):
Code:
#main {
	display:block;
	width:96%;
	background:#DFFDE2;
	max-width:1000px;
	margin:0em;
	padding:1.25em;
}
#main article {
	display:inline-block;
	vertical-align:top;
	margin:0em 0em 1em 0em;
	padding:0em 0em 0.5em 0em;
	text-align:center;
	width:100%;
	border-bottom:0.08em solid darkgreen;
}
p{
	line-height:1.25em;
	font-family:Helvetica;
	font-weight:100;
	color:black;
	margin:0em;
	padding:1.25em;
	text-align:justify;
}

Hier der php-Code:
PHP:
$sql = "SELECT * FROM Beitraege, Beitraege_zu_Themen WHERE Beitraege.Beitraege_ID = Beitraege_zu_Themen.Beitraege_ID AND Beitraege_zu_Themen.Themen_ID = '". $Themen_ID . "'";
$res = mysqli_query($con, $sql);
while($dsatz = mysqli_fetch_assoc($res))
{
	echo "<article>";
	echo "<h3>" . $dsatz['Beitraege_Name'] . "</h3><br>";
	echo "<p>" . $dsatz['Beitraege_Inhalt'] . "</p>";
	$Datum = $dsatz['Beitraege_Zeitstempel'];
	echo "<p>" . FormDatum($Datum);					
	$sql1 = "SELECT User_Username FROM User WHERE User_ID ='" . $dsatz['Beitraege_Autor'] ."'";
	$res1 = mysqli_query($con, $sql1);
	while($dsatz1 = mysqli_fetch_assoc($res1))
	{
		$Autor = $dsatz1['User_Username'];
	}
	echo " | " . $Autor . "</p>";							
	echo "</article>";
}


article-Box.png


article-Box 3d.png
 
Wäre cool auch den HTML-Code, der funktioniert zu sehen... Erspart vllt. ein bisschen Arbeit :p

und mal ausprobieren:
Andere Browser
Leerzeichen (an Bruchstellen im Text [also nach magna?]) im Entwicklertool von Hand durch Leerzeichen ersetzen. Evtl. sinds &nbsp;

Lg, Franz
 
Zuletzt bearbeitet:
Die Wahrscheinlichkeit ist recht hoch, dass es &nbsp; sind.
Vermutlich geht da schon beim Insert was schief.

Und so als Hinweis: Bei font-family niemals nur eine Schriftart angeben. Wenn der Besucher kein Helvetica hat, nimmt der Browser einfach eine andere Schrift. Leider meist dann eine hässliche Serifen-Schrift wie bspw Times new roman.

Daher immer so angeben:
Code:
font-family: Helvetica, Verdana, sans-serif;

Gibt es Helvetica nicht, so nimmt er Verdana (die ja recht ähnlich ist), gibt es diese auch nicht, wird eine serifenlose Schrift genommen.


Und wenn es in PHP Probleme mit der Ausgabe gibt, so hilft es meist, wenn man die auszugebene Variable mal mit var_dump ausgibt.
 
Ahh vielen Dank euch Beiden!
Ja es waren &nbsp;'s und ja das ging schon beim Insert schief^^'
Musste bei der Eingabe eines Formular-Feldes die Leerzeichen ersetzen und habe das dann bei allen gemacht....

Ok das mit den Schriftwarten passe ich dann auch an : )
 
Wie sieht denn dein Formular aus? Denn normalerweise sollte es nicht nötig sein da was zu ersetzen. Wird das zufällig über get anstatt post übertragen?

Kurz und knapp via Smartphone
 
Mein Formular ist noch sehr spartanisch und beinhaltet lediglich ein Zeile zur Eingabe des "Themas" und eine Textarea in die dann der eigentliche Beitrag kommt. (Wie in den meisten Foren[Übertragung per POST])
Und aufgrund eines Denkfehlers habe ich dann mit Hilfe eines str_replace alle Leerzeichen ersetzen lassen.
Problem war, dass ich diesen Teil aus aus einem anderen Formular meiner Seite einfach kopiert habe.
Naja blöd zu erklären, jedenfalls ist mir hierbei klar geworden, dass das ganze eh dumm war und es keinen Sinn macht den str_replace so zu nutzen^^
 
Zurück
Oben