Tabelleninhalt in Datei schreiben

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

  • Tabelleninhalt in Datei schreiben

    Guten Tag,

    vielleicht wurde die Frage schon gestellt, aber ich habe noch nichts passendes gefunden. Und zwar habe ich eine Tabelle die aus 4 Spalten besteht:

    ID | Name | Email | URL

    Diese Daten möchte ich in eine TXT Datei ablegen, denn diese Datei benötige ich anschließend für den email Versand.

    Wie löse ich mein Problem am geschicktesten?


    Zocker

  • #2


    fopen ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Hi,

      so, die Datei hat jetzt folgenden Inhalt:

      2 | klaus meier | meier@web.de | www.meier.de


      Wie lese ich nun die einzelnen Felder aus der Datei aus?



      Zocker

      Kommentar


      • #4
        explode

        Kommentar


        • #5
          Die Daten stehen wie folgt in der Datei:

          1robert testinfo@mail.dehttp://www.test.tf

          Wie kann ich zwischen den einzelnen spalten ein | einfügen.

          Hier der Code:

          PHP-Code:
          $abfrage_user "SELECT id, name, email, homepage_url FROM dhs_link_url";
          $sql_user mysql_query($abfrage_user);

          while (
          $row mysql_fetch_array($sql_user))
          {
              
          $id $row['id'];
              
          $name $row['name'];
              
          $email $row['email'];
              
          $homepage_url $row['homepage_url'];
              
              
          $datei=fopen("mail.txt","a");
              
          fputs ($datei,$id);
              
          fputs ($datei,$name);
              
          fputs ($datei,$email);
              
          fputs ($datei,$homepage_url);
              
          fputs ($datei,"\n");
              
          fclose($datei);


          Zocker

          Kommentar


          • #6
            Hab es gerade selbst geschafft.

            Kommentar


            • #7
              edit: wow

              Kommentar


              • #8
                Mal eine Frage nebenher, brauchst du die Daten nur zum Mailversand oder warum speicherst du sie? Wenn du sie nur senden musst brauchst du sie doch gar nicht erst in einer Datei speichern. Oder willst du die Datei versenden?
                Wer einen Weisen dumm fragt, wird eine kluge Antwort bekommen. Es ist nur die Frage, ob er sie auch versteht.

                Kommentar


                • #9
                  Hallo,

                  ich versende die emails mit den Daten aus der Datei. Ich habe das auch mal über die Tabelle versucht, aber da erhielt ich die Meldung Fatal error: Maximum execution time of 30 seconds exceeded

                  Deshalb gehe ich jetzt den Weg mit der Datei. Das sieht dann so aus:

                  PHP-Code:
                  $fd fopen ("mail.txt""r");
                         while (!
                  feof($fd))
                      {
                          
                  $to chop(fgets($fd4096));
                          list (
                  $id$name$email$homepage_url) = explode('|'$to);
                          
                  $message str_replace('$id'$id$nachricht);
                          
                  $message1 str_replace('$email'$email$message);
                          
                  $message2 str_replace('$homepage_url'$homepage_url$message1);
                          
                  $message3 str_replace('$path'$path$message2);
                      
                             
                  mail($email$betreff$message3"From: $absendername <$absenderemail>");
                     }
                     
                  fclose ($fd);
                     echo 
                  "<center><br>Alle eMails wurden verschickt.</center>"

                  Mein Problem ist aber nun, dass wenn ich die Datei zum Versenden aufrufe, eine weisse Seite erscheint und im Hintergrund die emails versendet werden. Ich möchte, dass eine Nachricht ausgegeben wird, Emails werden versendet, bitte warten...


                  Zocker

                  Kommentar


                  • #10
                    PHP-Code:
                    echo "Emails werden versendet, bitte warten..."
                    ??

                    Ich möchte mal die Behauptung aufstellen, dass im allgemeinen SQL schneller wäre als Text-Dateien.

                    Kommentar


                    • #11
                      Das habe ich bereits gemacht.

                      Aber die Meldung "eMail werden verschickt..."

                      erscheint erst nachdem alle emails versendet wurden. Bisher sehe ich nur eine leere weise Seite.



                      Zocker

                      Kommentar


                      • #12
                        Hast du die Echo-Anweisung auch wirklich vor dem Mail-Versand stehen?

                        Kommentar


                        • #13
                          flush
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Hier meine SQL Version:

                            PHP-Code:
                            if($newsletter == "ja")
                            {
                                    if (!isset(
                            $sendeid) or $sendeid == "") {$sendeid 0;}
                                if (!isset(
                            $gesamt) or $gesamt == "") {$gesamt 0;}

                                
                            $abfrage_getemail "SELECT id, email, homepage_url, status FROM dhs_link_url where id > '$sendeid' order by id asc";
                                
                            $getemail mysql_query($abfrage_getemail);
                                
                            $restmails = @mysql_num_rows($getemail);
                                
                            $counter=0;

                                while (
                            $counter $restmails)
                                {
                                    
                            $sendeid mysql_result($getemail$counter'id');
                                    
                            $email mysql_result($getemail$counter'email');
                                    
                            $homepage_url mysql_result($getemail$counter'homepage_url');
                                    
                            $status mysql_result($getemail$counter'status');
                                    
                                    if (
                            $status == "gesperrt")
                                    {
                                        
                            $message str_replace('$id'$sendeid$nachricht);
                                          
                            $new_message1 str_replace('$homepage_url'$homepage_url$message);
                                        
                            $new_message2 str_replace('$path'$path$new_message1);
                                        
                            $xHeaders "From: $absendername <$absenderemail>";
                                        
                            #$xHeaders = "From: $absender\nX-Mailer: PHP/" . phpversion();

                                        
                            mail ($email$betreff$new_message2$xHeaders);
                                        
                            $gesamt $gesamt +1;
                                        
                            $counter $counter 1;
                                        
                            $jetzt=time();
                                        
                            $vergangen=$jetzt $start;

                                        if(
                            $vergangen 15)
                                        {
                                            
                            #mysql_close($conid);
                                            
                            break;
                                        }
                                    }
                                }

                                if (
                            $counter $restmails)
                                {
                                    echo 
                            "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
                                    <html>
                                    <head>
                                    <title>Nachricht verteilen...</title>
                                      <meta http-equiv=\"content-type\" content=\"text/html\">
                                      <meta http-equiv=\"refresh\" content=\"1;url=refresh_newsletter_verschicken.php?newsletter=ja&mid=
                            $mid&sendeid=$sendeid&gesamt=$gesamt\">
                                    </head>
                                    <body>
                                    
                            $ergebnis
                                    Bisher 
                            $gesamt Emails verschickt. Bitte das Browserfenster noch nicht schliessen!
                                    </body>
                                    </html>"
                            ;
                                }
                                else
                                {
                                    
                            #Anzahl der versendeten Newsletter um 1 erhöhen
                                    
                            $anzahl_versand_newsletter $anzahl_versand_newsletter 1;
                                    
                            $update_newsletter_anzahl mysql_query ("UPDATE dhs_link_einstellungen SET anzahl_versand_newsletter = '$anzahl_versand_newsletter'");

                                    echo 
                            "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
                                    <html>
                                    <head>
                                    <title>Nachricht verteilen...</title>
                                    <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\">
                                    </head>
                                    <body>
                                    
                            $ergebnis
                                    Insgesamt 
                            $gesamt Emails verschickt. Fertig.<br>Sie koennen das Browserfenster jetzt schliessen!<br><a href=\"linkrefresh.php\">zurueck</a>
                                    </body>
                                    </html>"
                            ;
                                }

                            Aber wie ich bereits gesagt habe, erscheint beim Aufruf der Datei die Meldung: Fatal error: Maximum execution time of 30 seconds exceeded


                            Zocker

                            Kommentar


                            • #15
                              Das echo steht vor dem Versenden der emails:

                              PHP-Code:
                              if($newsletter == "ja")
                              {
                                  echo 
                              "<center><br>eMail werden verschickt...</center>";

                                  
                              $fd fopen ("mail.txt""r");
                                     while (!
                              feof($fd))
                                  {
                                      
                              $to chop(fgets($fd4096));
                                      list (
                              $id$name$email$homepage_url) = explode('|'$to);
                                      
                              $message str_replace('$id'$id$nachricht);
                                      
                              $message1 str_replace('$email'$email$message);
                                      
                              $message2 str_replace('$homepage_url'$homepage_url$message1);
                                      
                              $message3 str_replace('$path'$path$message2);
                                  
                                         
                              mail($email$betreff$message3"From: $absendername <$absenderemail>");
                                 }
                                 
                              fclose ($fd);
                                 echo 
                              "<center><br>Alle eMails wurden verschickt.</center>";


                              Zocker

                              Kommentar

                              Lädt...
                              X