Schleife funktioniert einfach nicht

boardcash

Mitglied
Erst hat die Schleife funktioniert, jetzt auf einmal nicht mehr.
Der Code soll alle vorhandenen Datensätze auslesen, liest aber nur den 1. aus.

Bin echt noch Anfänger. Wer kann mir ein bischen helfen.



PHP:
 <?php $threadid = $_GET['threadid']; // threadid aus adressleiste auslesen 
$fp = fopen("template_post.html","r"); // teamplate zum lesen(r) &ouml;ffnen 
$template = fread($fp,filesize("template_post.html")); // inhalt der template datei in die teamplate variable laden. 
$sql = mysql_query("SELECT * FROM simple_posts WHERE threadid = '$threadid' ORDER BY postid ASC"); // mysql select befehl
$sql_v1 = mysql_query("SELECT * FROM einstellungen"); // mysql select befehl 
while($row = mysql_fetch_assoc($sql)) { // l&auml;d bei jedem durchgang(immer die n&auml;chste) eine zeile aus der tabelle in einen array in die variable $row 
	$titel = $row['titel']; // titel besorgen 
	$von = $row['von']; // von besorgen 
	$datum = $row['datum']; // datum besorgen 
	$post = $row['post']; // post besorgen
	$avatar = $row['avatar']; // avatar besorgen
	$status = $row['status']; // status besorgen
	$status_bild = $row['status_bild']; // statusbild besorgen
	$unten = $row['unten'];
	$bildordner = 'img';
	$reg_seit = $row['dabei_seit'];
 
 
	$datum = strftime("%d.%m.%Y",$datum); // datum formatieren 
 
	$post = nl2br($post); // zeilen umbrüche in html zeilenumbrüche umwandeln(<br>) 
 
while($row_v1 = mysql_fetch_assoc($sql_v1)) { // l&auml;d bei jedem durchgang(immer die n&auml;chste) eine zeile aus der tabelle in einen array in die variable $row 
	$button_antworten = $row_v1['button_antworten']; // titel besorgen 
	$farben_hintergrund_titel = $row_v1['farben_hintergrund_titel']; //
	$farben_hintergrund_text = $row_v1['farben_hintergrund_text']; // 
	$farben_hintergrund_signatur = $row_v1['farben_hintergrund_signatur']; // 
	$farben_hintergrund_daten_feld = $row_v1['farben_hintergrund_daten_feld']; // 
	$farben_hintergrund_gesamt_feld = $row_v1['farben_hintergrund_gesamt_feld']; //
	$farben_hintergrund_menue_leiste = $row_v1['farben_hintergrund_menue_leiste']; //
	$farben_rahmen = $row_v1['farben_rahmen']; //
	$farben_schrift_titel = $row_v1['farben_schrift_titel']; //
	$farben_schrift_text = $row_v1['farben_schrift_text']; // 
	$farben_schrift_signatur = $row_v1['farben_schrift_signatur']; // 
	$farben_schrift_datenfeld = $row_v1['farben_schrift_daten_feld']; //
	$farben_schrift_erstellt_am = $row_v1['farben_schrift_erstellt_am']; //
	$farben_schrift_user_nick = $row_v1['farben_schrift_user_nick']; // 
	$farben_schrift_status = $row_v1['farben_schrift_status']; // 
	$farben_schrift_mitglied_seit = $row_v1['farben_schrift_mitglied_seit']; //
	$groesse_schrift_titel = $row_v1['groesse_schrift_titel']; //
	$groesse_schrift_text = $row_v1['groesse_schrift_text']; //
	$groesse_schrift_signatur = $row_v1['groesse_schrift_signatur']; //
	$groesse_schrift_user_nick = $row_v1['groesse_schrift_user_nick']; // 
 
	$ausgabe = $template; 
 
	$ausgabe = str_replace("{von}",$von,$ausgabe); // von ins template einsetzen 
	$ausgabe = str_replace("{titel}",$titel,$ausgabe); // titel ins template einsetzen 
	$ausgabe = str_replace("{datum}",$datum,$ausgabe); // datum ins template einsetzen 
	$ausgabe = str_replace("{text}",$post,$ausgabe); // den post text ins template einsetzen
	$ausgabe = str_replace("{avatar}",$avatar,$ausgabe); // den post text ins template einsetzen 
	$ausgabe = str_replace("{status}",$status,$ausgabe); // den post text ins template einsetzen 
	$ausgabe = str_replace("{status_bild}",$status_bild,$ausgabe); // den post text ins template einsetzen
	$ausgabe = str_replace("{unten}",$unten,$ausgabe); // den post text ins template e
	$ausgabe = str_replace("{bildordner}",$bildordner,$ausgabe); // den post text ins template e 
	$ausgabe = str_replace("{dabei_seit}",$reg_seit,$ausgabe); // d
	$ausgabe = str_replace("{threadid}",$threadid,$ausgabe); // d
	$ausgabe = str_replace("{button_antworten}",$button_antworten,$ausgabe);
	$ausgabe = str_replace("{h_titel}",$farben_hintergrund_titel,$ausgabe);
	$ausgabe = str_replace("{h_text}",$farben_hintergrund_text,$ausgabe);
	$ausgabe = str_replace("{h_signatur}",$farben_hintergrund_signatur,$ausgabe);
	$ausgabe = str_replace("{h_datenfeld}",$farben_hintergrund_daten_feld,$ausgabe);
	$ausgabe = str_replace("{h_gesamt_feld}",$farben_hintergrund_gesamt_feld,$ausgabe);
	$ausgabe = str_replace("{h_menue_leiste}",$farben_hintergrund_menue_leiste,$ausgabe);
	$ausgabe = str_replace("{rahmen}",$farben_rahmen,$ausgabe);
	$ausgabe = str_replace("{f_titel}",$farben_schrift_titel,$ausgabe);
	$ausgabe = str_replace("{f_text}",$farben_schrift_text,$ausgabe);
	$ausgabe = str_replace("{f_signatur}",$farben_schrift_signatur,$ausgabe);
	$ausgabe = str_replace("{f_daten_feld}",$farben_schrift_daten_feld,$ausgabe);
	$ausgabe = str_replace("{f_erstellt_am}",$farben_schrift_erstellt_am,$ausgabe);
	$ausgabe = str_replace("{f_user_nick}",$farben_schrift_user_nick,$ausgabe);
	$ausgabe = str_replace("{f_status}",$farben_schrift_status,$ausgabe);
	$ausgabe = str_replace("{f_mitglied_seit}",$farben_schrift_mitglied_seit,$ausgabe);
	$ausgabe = str_replace("{gr_titel}",$groesse_schrift_titel,$ausgabe);
	$ausgabe = str_replace("{gr_text}",$groesse_schrift_text,$ausgabe);
	$ausgabe = str_replace("{gr_signatur}",$groesse_schrift_signatur,$ausgabe);
	$ausgabe = str_replace("{gr_user_nick}",$groesse_schrift_user_nick,$ausgabe);
 
	echo $ausgabe; 
 
};
}; 
?>
 
Du übergibst ja die Variable "threadid" an das Skript und liest dann in $sql="...." alle Datensätze aus, wo threadid='$threadid'. ID hat ja die Eigenheit dass sie nur einmal vorkommt. Wieso erwartest du also, dass wenn du einen Datensatz anhand einer ID ausliest, mehrere Daten ausgelesen werden?

Oder versteh ich da jetzt was falsch?
 
Probier mal Folgendes:
PHP:
<?php

	$template = file_get_contents('template_post.html');


	$query = "
		SELECT
		        `button_antworten`,
		        `farben_hintergrund_titel`,
		        `farben_hintergrund_text`,
		        `farben_hintergrund_signatur`,
		        `farben_hintergrund_daten_feld`,
		        `farben_hintergrund_gesamt_feld`,
		        `farben_hintergrund_menue_leiste`,
		        `farben_rahmen`,
		        `farben_schrift_titel`,
		        `farben_schrift_text`,
		        `farben_schrift_signatur`,
		        `farben_schrift_daten_feld`,
		        `farben_schrift_erstellt_am`,
		        `farben_schrift_user_nick`,
		        `farben_schrift_status`,
		        `farben_schrift_mitglied_seit`,
		        `groesse_schrift_titel`,
		        `groesse_schrift_text`,
		        `groesse_schrift_signatur`,
		        `groesse_schrift_user_nick`
		  FROM
		        `einstellungen`
		  LIMIT
		        1
		";
	$settings = mysql_fetch_array(mysql_query($query), MYSQL_ASSOC);

	$query = "
		SELECT
		        `titel`,
		        `von`,
		        `datum`,
		        `post`,
		        `avatar`,
		        `status`,
		        `status_bild`,
		        `unten`,
		        `dabei_seit`
		  FROM
		        `simple_posts`
		  WHERE
		        `threadid` = '" . mysql_real_escape_string($_GET['threadid']) . "'
		  ORDER BY
		        `postid` ASC
		";
	$result  = mysql_query($query);
	while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {

		$ausgabe = $template;

		$ausgabe = str_replace('{button_antworten}', $settings['button_antworten'], $ausgabe);
		$ausgabe = str_replace('{h_titel}', $settings['farben_hintergrund_titel'], $ausgabe);
		$ausgabe = str_replace('{h_text}', $settings['farben_hintergrund_text'], $ausgabe);
		$ausgabe = str_replace('{h_signatur}', $settings['farben_hintergrund_signatur'], $$ausgabe);
		$ausgabe = str_replace('{h_datenfeld}', $settings['farben_hintergrund_daten_feld'], $ausgabe);
		$ausgabe = str_replace('{h_gesamt_feld}', $settings['farben_hintergrund_gesamt_feld'], $ausgabe);
		$ausgabe = str_replace('{h_menue_leiste}', $settings['farben_hintergrund_menue_leiste'], $ausgabe);
		$ausgabe = str_replace('{rahmen}', $settings['farben_rahmen'], $ausgabe);
		$ausgabe = str_replace('{f_titel}', $settings['farben_schrift_titel'], $ausgabe);
		$ausgabe = str_replace('{f_text}', $settings['farben_schrift_text'], $ausgabe);
		$ausgabe = str_replace('{f_signatur}', $settings['farben_schrift_signatur'], $ausgabe);
		$ausgabe = str_replace('{f_daten_feld}', $settings['farben_schrift_daten_feld'], $ausgabe);
		$ausgabe = str_replace('{f_erstellt_am}', $settings['farben_schrift_erstellt_am'], $usgabe);
		$ausgabe = str_replace('{f_user_nick}', $settings['farben_schrift_user_nick'], $ausgabe);
		$ausgabe = str_replace('{f_status}', $settings['farben_schrift_status'], $ausgabe);
		$ausgabe = str_replace('{f_mitglied_seit}', $settings['farben_schrift_mitglied_seit'], $ausgabe);
		$ausgabe = str_replace('{gr_titel}', $settings['groesse_schrift_titel'], $ausgabe);
		$ausgabe = str_replace('{gr_text}', $settings['groesse_schrift_text'], $ausgabe);
		$ausgabe = str_replace('{gr_signatur}', $settings['groesse_schrift_signatur'], $ausgabe);
		$ausgabe = str_replace('{gr_user_nick}', $settings['groesse_schrift_user_nick'], $ausgabe);

		$ausgabe = str_replace('{von}', $row['von'], $ausgabe);
		$ausgabe = str_replace('{datum}', strftime('%d.%m.%Y', $row['datum']), $ausgabe);
		$ausgabe = str_replace('{avatar}', $row['avatar'], $ausgabe);
		$ausgabe = str_replace('{status}', $row['status'], $ausgabe);
		$ausgabe = str_replace('{status_bild}', $row['status_bild'], $ausgabe);
		$ausgabe = str_replace('{unten}', $row['unten'], $ausgabe);
		$ausgabe = str_replace('{bildordner}', 'img', $ausgabe);
		$ausgabe = str_replace('{dabei_seit}', $row['reg_seit'], $ausgabe);
		$ausgabe = str_replace('{threadid}', $_GET['threadid'], $ausgabe);
		$ausgabe = str_replace('{titel}', $row['titel'], $ausgabe);
		$ausgabe = str_replace('{text}', nl2br($row['post']), $ausgabe);

		echo $ausgabe;

	}

?>
Übrigens empfehle ich dir, anstatt die visuelle Darstellung durch Einträge in der Datenbank mit CSS zu machen; das ist weitaus felxibler.
 
Zuletzt bearbeitet:
@ChocobananaAlso habs vieleicht etwas wenig eklärt. Es handelt sich um ein kleines Forum und die "threadid" kommt immer mehrfach vor.

@Gumbo
Probier ich gleich aus


Vielen Dank
RR
 
@gombo

Also das mit CSS weis ich, aber da weis ich noch nicht wie ich sowas per admin änderbar machen kann und bis ich mich zu diesen Thema durch die Foren gelesen habe muss es erstemal so reichen

Habe deine Version ausprobiert und 2 Fehler angezeigt bekommen.
Und wenn diese kommen (in dieser Zeile) ist echt alles vorbei.

Vielleicht kann mir das jemand mal erklären?

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web6/html/myforum/topic.php on line 134

Fehler wird für diese Zeile angezeigt:
$settings = mysql_fetch_array($result, MYSQL_ASSOC);


Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web6/html/myforum/topic.php on line 157

Fehler wird für diese Zeile angezeigt:
while($row = mysql_fetch_assoc($sql)) {
 
Gumbo hat gesagt.:
Ich hab meinen letzten Beitrag entsprechend geändert, nun sollte es funktionieren.


Ok jetzt kommt nur noch eine Fehlermeldung:



Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web6/html/myforum/topic.php on line 135

in Zeile:
$settings = mysql_fetch_array(mysql_query($query), MYSQL_ASSOC);


nochmal vielen Dank
RR
 
Nagut jetzt kommt keine Fehlermeldung mehr, habe komplett alles Kontrolliert fehlt kein Komma nichts.

Könnte mir vorstellen, das es mit dem einbinden des Templates zu tun hat,
aber da habe ich mich auf das tut... verlassen.

oh man, oh man


Danke für alles
RR
 
Zurück