MySQL Ausgabe in Variabeln abspeichern

CoverUnder

Mitglied
Hallo,

ich mal wieder - mit einem Problem, bei dem ich leider nicht mehr weiter komme und nun auf hilfreiche und lehrreiche Tipps hoffe...

Folgende Situation:
Ich möchte via PHP ein eMail versenden. Das eMail wird mittels PHP generiert und enthält auch eine Tabelle, die mit Daten aus der Datenbank gefüllt wird. Soweit sogut - aber leider wird immer nur der zuletzt ausgelesene Datenbank-Eintrag angezeigt und die vorherigen nicht. Wieso das zwar ist, ist zwar logisch, aber leider nicht, wie man das ändern könnte... eine andere Lösung als die, die ich versucht habe, fällt mir leider nicht ein...

Hier Auszüge aus meinem Script:

PHP:
$teil1 = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html\; charset=utf-8\" />
<title>eMail</title>
<style type=\"text/css\">
table {
	border-width: 1px;
	border-style: solid;
	border-color: black;
	border-collapse: collapse;
}
</style>
</head>
<body>";


......
......

 
$sql="";
$res = mysql_db_query($mysqldb, $sql, $db) or die(mysql_error()); 
while ($row = mysql_fetch_assoc($res)) {

....

$teil5 = "<tr>
<td><div align=\"center\"><img src=\"$bild\" border=\"0\" width=\"180\"></td>
<td><div align=\"center\">$a</td>
<td><div align=\"center\">$b</td>
</tr>";

}


$mailtext = $teil1.$teil2.$teil3.$teil4.$teil5

Da sich die Teile, die ins eMail sollen, über das ganze Script verstreuen, habe ich es so gemacht, dass ich einfach alle in eine Variable stecke $teil1, $teil2, $teil3 und am Ende dann das eMail generiere, in dem alle Teile gemeinsam in die eMail gesteckt werden. Das funktioniert nur leider beim SQL ist - wieso, weiß ich... nur eben leider nicht, wie ich es sonst lösen könnte... Ich dachte an Arrays? Aber wie genau? Die Anzahl der Datensätze, die rein sollen, variiert von eMail zu eMail...
Bitte um Tipps!

Grüße
 
Du könntest die Tabellen-Zeilen aneinander hängen, das macht man mit der Zeichenketten-Verketten (String-Concatenation) und funktioniert so:

PHP:
$teil5 .= "<tr>
<td><div align=\"center\"><img src=\"$bild\" border=\"0\" width=\"180\"></td>
<td><div align=\"center\">$a</td>
<td><div align=\"center\">$b</td>
</tr>";

Achte auf den Punkt vor dem Gleichheitszeichen nach $teil5. So verketten man in PHP Zeichenketten.
 
Super, vielen, vielen Dank! Konnte leider erst jetzt wieder ins Internet, sonst hätte ich schon früher reagiert! Funktioniert tadellos, hätte nie gedacht, dass das so einfach geht.
 
Zurück