echo $begrüßung;
ich weiß nicht, wie ich die email an die empfänger senden kann.
Mit mail(), aber das, nehme ich an, wird nicht dein Problem sein.
(aber es kommt nur eine an !!!)
Ursache wird die Mehrfachverwendung einer Variablen sein. Du füllst sie für die eine Schleife, überschreibst sie aber in der zweiten. Eine Kontrollausgabe der Variableninhalte hilft, solche Fehler zu finden, wenn du sie nicht anhand deines Codes entdeckst.
$resultn = mysql_query($sqlN);
if($resultn) {
$rows = mysql_num_rows($resultn);
$n = 0;
while ($n < $rows) {
$rsn = mysql_fetch_array($resultn);
Die Verwendung von Einrückungen machte den Code lesbarer ...
Obiges Codefragment schreibt mal im Allgemeinen so:
if ($resultn = mysql_query($sqlN)) {
while ($rsn = mysql_fetch_array($resultn)) {
Normalerweise kann man das Ergebnis erst zählen, wenn man es vollständig gefetcht hat. Doch PHP macht das bereits im Hintergrund, weswegen mysql_num_rows auch dann geht, wenn du noch nicht alle Datensätze geholt hast. Da du aber sowieso alle Datensätze haben willst, kannst du sie auch einzeln holen, bis keiner mehr da ist, ohne ihre Anzahl zu kennen.
Du liest weiterhin den Content innerhalb der Empfänger-Schleife jedes Mal neu aus der DB aus. Bekommt jeder Empfänger einen unterschiedlichen Newsletter oder bekommen sie alle den gleichen? Mir scheint, letzteres der Fall. Hol den Newsletter zuerst und nur eimal ab. Datenbankabfragen sind vergleichsweise "teuer". Reduziere sie und die dabei abzufragende Datenmenge stets auf ein Minimum.
echo "$verabschiedung $name";