Kirsten Adler: Datenbankwerte in Variable

Hallo,

ich habe ein ähnliches Problem, wie die Obst-Frage zuvor. Habe auch schon versucht diese Lösung anzupassen, dennoch krieg ichs nicht hin.

Ich möchte gerne ein E-Mail an alle User meiner MySql-Datenbank senden.

Dazu möchte ich alle Mail-Adressen in eine Variable einlesen.

Die Mail-Adressen setzen sich aus den folgenden Bausteinen zusammen:
[$user]@[$country]domain.com

Das sollte folgendes ergeben:
$recipients = 'user1@country1.domain.com,user2@country2.domain.com,....';

Bitte, bitte um Hilfe, wie ich das hinkriege.

Vielen Dank schon mal
Kirsten

  1. hi,

    ich habe ein ähnliches Problem, wie die Obst-Frage zuvor. Habe auch schon versucht diese Lösung anzupassen, dennoch krieg ichs nicht hin.

    was hast du versucht?

    $recipients = 'user1@country1.domain.com,user2@country2.domain.com,....';

    du möchtest nicht wirklich alle als direkte empfänger angeben - dann könnte jeder die mailadresse der anderen user einsehen, und beliebig unfug damit treiben.

    du möchtest stattdessen allen die mail per bcc: schicken.

    gruss,
    wahsaga

  2. Hallo,

    ich habe ein ähnliches Problem, wie die Obst-Frage zuvor. Habe auch schon versucht diese Lösung anzupassen, dennoch krieg ichs nicht hin.

    |/  .o0(Welche Obstfrage???)
     * *
      |
     ---

    Ich möchte gerne ein E-Mail an alle User meiner MySql-Datenbank senden.

    Ok. Du brauchst mail()
    http://de2.php.net/manual/de/ref.mail.php

    Dazu möchte ich alle Mail-Adressen in eine Variable einlesen.

    Ok. Ich gehe davon aus das Du bereits Deine gewünschten Datensätze einer Variablen (Array?) hälst?

    Jetzt brauchst Du noch eine Schleife die Deine Datensätze durchläuft und sich die entsprechenden Felder rausholt z.Bsp.
    http://de2.php.net/manual/de/control-structures.for.php
    http://de2.php.net/manual/de/control-structures.foreach.php

    und diese in einen String einsetzt.
    Dieser String wird wieder am Ende von jedem Durchgang an eine andere Variable angehängt.
    http://de2.php.net/manual/de/language.operators.string.php

    Hoffe ich konnte ein wenig helfen, ansonsten nochmal nachfragen was unklar ist...
    Grüsse AndreD

    1. Hallo AndreD,

      vielen Dank für die Tips - ich bin auch ein Stück weiter damit gekommen:

      Ich erhalte nun immerhin eine Ausgabe, allerdings nur die letzte fertig montierte Mail-Adresse - entsprechend der Anzahl Datensätze in der Datenbank:
      187 x hintereinander:    user187@country187.domain.com,
      Anstelle der gewünschten Liste aller Mail-Adressen:
      user1@country1.domain.com,user2@country2.domain.com,.....user187@country187.domain.com

      Vielen Dank schon mal für eine weitere Hilfe
      Kirsten
      __________________________-

      Der Code sieht jetzt wie folgt aus:

      $result=mysql_db_query($database,$query,$pconnect);
      $array1=file($filename);
      for ($i=0;$i<count($array1);$i++) {
         $string_temp=$array1[$i];
      }  // end of for

      while ($row=mysql_fetch_array($result)) {
         $id=$row["id"];
         $user=$row["user"];
         $yountry=$row["yountry"];
         $maillist = "";
      }  //end of while

      foreach ($array1 AS $val) {
         $maillist .= $user;
         $maillist .= "@";
         $maillist .= $country;
         $maillist .= "domain.com,";
      }  // end of foreach
      echo $maillist;

      1. hi,

        Ich erhalte nun immerhin eine Ausgabe, allerdings nur die letzte fertig montierte Mail-Adresse - entsprechend der Anzahl Datensätze in der Datenbank:
        187 x hintereinander:    user187@country187.domain.com,

        $result=mysql_db_query($database,$query,$pconnect);
        $array1=file($filename);

        was steht in dieser datei? ich dachte, du wolltest die daten aus einer datenbank auslesen?

        while ($row=mysql_fetch_array($result)) {
           $id=$row["id"];
           $user=$row["user"];
           $yountry=$row["yountry"];
           $maillist = "";
        }  //end of while

        hier überschreibst du $id, $user etc. in jedem durchlauf mit den werten aus dem aktuellen datensatz, so dass am ende nur noch die aus dem letzten vorhanden sind.

        foreach ($array1 AS $val) {
           $maillist .= $user;
           $maillist .= "@";
           $maillist .= $country;
           $maillist .= "domain.com,";
        }  // end of foreach

        keine ahnung, was in $array steht, keine ahnung, was das soll.

        denk erst mal ein bisschen logisch nach und entwickle ein schlüssiges konzept, bevor du einfach so drauf los scriptest.

        gruss,
        wahsaga