script stückchenweise ausführen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • script stückchenweise ausführen

    hallo

    folgendes Problem:

    Ich möchte gern in einem script nen newsletter versenden.

    ich such mir also die email aus der DB
    zähle die anzahl
    und versende mit einer "for" schleife das mail.
    PHP-Code:
    $sql "SELECT email,anrede,vorname,nachname FROM mitglieder where newsletter=ja";
    $daten $this->select($sql); 

    for (
    $i=0;$i<count($daten);$i++)
    {
    $vorname=$daten[$i]["vorname"];
    $nachname=$daten[$i]["nachname"];
    $anrede=ucfirst($daten[$i]["anrede"]);

    mail (.........);

    dann hab ich noch ein paar str_replace das der text, und banner und aktinen in das mail kommen.
    die ich jetzt hier nich alle schreiben will.

    wenn ich das mail versende, bricht mir der Server das script ab weil es länger als 120 sek. dauert.


    Wie kann ich es machen dass nur 200 versendet werden, dann das script neu lädt und die nächsten 200 versendet werden. und so weiter.

    bis alle durch sind.
    Es liegt nie am Gerät, sondern immer an dem der es bedient.

  • #2
    Re: script stückchenweise ausführen

    Original geschrieben von roman204
    Wie kann ich es machen dass nur 200 versendet werden, dann das script neu lädt und die nächsten 200 versendet werden. und so weiter.
    das thema hatten wir hier schon öfters - benutze bitte die suchfunktion.

    tipp: etwas kreativere suchstichworte als "mail" o.ä. sollten es evtl. schon sein.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ja aber sowas hab ich nicht gefunden.

      nach beiträgen bis 2003
      Es liegt nie am Gerät, sondern immer an dem der es bedient.

      Kommentar


      • #4
        http://www.php-resource.de/forum/sea...der=descending

        alles, was mit timeout oder performance zu tun hat, mag dich.

        Kommentar


        • #5
          http://www.php-resource.de/forum/sho...hlight=R%F6nee

          das sollte Dir auch weiterhelfen!

          schöne Grüsse René

          Kommentar


          • #6
            benutze das script auf nen hosting server also nicht mein eigen.

            max_execution_time stellt er mir aus sicherheitsgründen nicht um.
            Es liegt nie am Gerät, sondern immer an dem der es bedient.

            Kommentar


            • #7
              wie wäre es mit

              - LIMIT (einzubauen wie in Blätterfunktionen)
              - nach Abarbeitung der Summe X ein header()
              - wenn dein Postfach noch eine pause braucht gibt es noch sleep() oder so.
              mfg
              marc75

              <Platz für anderes>

              Kommentar


              • #8
                hab daran auch schon gedacht .

                aber an der umsetzung scheiterts

                PHP-Code:
                $a=0;
                $b=500;

                for(
                $s=0;$s<$durchlaeufe;$s++)
                {

                $sql "SELECT email,anrede,vorname,nachname FROM mitglieder where newsletter=ja limit $a,$b";
                $daten $this->select($sql); 

                for (
                $i=0;$i<count($daten);$i++)
                {
                $vorname=$daten[$i]["vorname"];
                $nachname=$daten[$i]["nachname"];
                $anrede=ucfirst($daten[$i]["anrede"]);

                mail (.........);
                }
                $a=$a+500;
                $b=$b+500;

                aber irgendwie komm ich nicht weiter wie ich die durchläufe zähle wie viele es werden oder so .

                und ausserdem soll das script auch irgenwo neu geladen werden , damit es nicht wieder abgebrochen wird.
                Es liegt nie am Gerät, sondern immer an dem der es bedient.

                Kommentar


                • #9
                  PHP-Code:

                  $sql 
                  "SELECT email,anrede,vorname,nachname 
                  FROM mitglieder 
                  where newsletter=ja 
                  limit (
                  $start * $ende), $ende";

                  while(
                  $row mysql_fetch_array($sql)){

                  //mache was, z.B. emails bauen und versenden

                  }

                  header("Location: url/datei.php?start=$ende"); 
                  grob gemeint so ungefähr
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    danke hat mir schon sehr geholfen
                    bin jetzt soweit hab das ganze zu testzwecken etwas geändert)

                    PHP-Code:
                    if(empty($start))
                    {
                    $start=0;}

                    $ende=$start+500;

                    print 
                    "<meta http-equiv=\"refresh\" content=\"10; URL=test1.php?start=$ende>";

                    print 
                    "$start<br>$ende<br>";

                    $sql mysql_query("SELECT email,anrede,vorname,nachname FROM mitglieder where status=1 limit ".$start.",".$ende."");
                    while (
                    $daten mysql_fetch_array($sql)) 
                    {
                    $vorname=$daten[vorname];

                    print 
                    "$vorname<br>";

                    nur ist jetzt jedesmal start 0 und ende 500
                    die werte werden nicht übernommen.

                    Zuletzt geändert von roman204; 10.02.2005, 10:22.
                    Es liegt nie am Gerät, sondern immer an dem der es bedient.

                    Kommentar


                    • #11
                      ruf die variablen mal richtig auf die du übergibst und zwar mit $_GET[] ...

                      Kommentar


                      • #12
                        ich schicke doch kein formular ab , da brauch ich das doch eigentlich garnicht , oder doch ??
                        Es liegt nie am Gerät, sondern immer an dem der es bedient.

                        Kommentar


                        • #13
                          Original geschrieben von roman204
                          ich schicke doch kein formular ab , da brauch ich das doch eigentlich garnicht , oder doch ??

                          such dir ein anderes Hobby oder lese das manual
                          mfg
                          marc75

                          <Platz für anderes>

                          Kommentar


                          • #14
                            also mit $_GET[start] tut sich da genauso wenig.

                            normalerweise übernimmt doch php die variablen die an der url dranhängen
                            Es liegt nie am Gerät, sondern immer an dem der es bedient.

                            Kommentar


                            • #15
                              ja
                              aber sauberer ist es die variablen mit $_GET['start'] aufzurfen ...

                              poste ienfach nochmal deinen code

                              gruss
                              armin

                              Kommentar

                              Lädt...
                              X