SChleife schleift nicht .... :(

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

  • SChleife schleift nicht .... :(

    Hi zusammen,

    Habe mir folgenden Code zusammengebastelt, das schlimme ist er hat schon funktioniert, tut er auch immer noch, zum Teil. Sinn ist es eine TXT auszulesen, zu zerlegen und in eine MySQL zu speicher, klappt auch, MIT DER ERSTEN TXT DATEI. Aber laut script wurden alle geschrieben, und in der MySQL sehe ich nur die erst TXT Datei, weiß hier jemand Rat, ist doch sicher nur ne Kleinigkeit die ich da verhunzt habe, das Gerüst müsste stimmen, weil es lief ja schon ...

    Code:
    <?
    // ############################# START MYSQL CONNECT
     mysql_connect("localhost",
      "root","");
    // ############################# END MYSQL CONNECT 
      
    // ############################# SELECT MYSQL DATABASE
      mysql_select_db("reports");
    // ############################# FINISH SELECT MYSQL DATABASE
    function daten_laden($pfad) {
             $verzeichnis = opendir($pfad);
             while($datei = readdir($verzeichnis)) {
                     if(eregi('.txt',$datei)) {
                         if($datei != "." && $datei != "..") 
    					 {
    $f = file($datei);
    for ($i = 0; $i < count($f); $i++) {
        $tmp = explode(': ', $f[$i]);
        $f[$i] = trim($tmp[1]);}
        $eintrag = "INSERT INTO reports (jobid, jobsubject, companyname, tfp, tsp, pagesperfax, totalminutes, starttime,
     endtime, totalrecipients, successful, error_3900, error_3920, 
    error_3932, error_3935, error_3936) VALUES ('$f[0]', '$f[1]', '$f[2]', 
    '$f[3]', '$f[4]', '$f[5]', '$f[6]', '$f[7]', '$f[8]', '$f[10]', '$f[11]', '$f[12]', 
    
    '$f[13]', '$f[14]', '$f[15]', '$f[16]')";
    
    printf ($f[0]. "<br>");
        $eintragen = mysql_query($eintrag);
    					 }
    					 }
    					 }
    					 }
    					 echo daten_laden("./");
    					 
    ?>
    Danke schon mal im vorraus fürs drübersehen,

    Matthias

  • #2
    testausgaben? php-tags?

    Kommentar


    • #3
      1. code umbrechen, php-tags nutzen, regeln befolgen - wie immer!
      2. mysql_error() und error_reporing() nutzen.

      Kommentar


      • #4
        2. steht doch in 1. :P

        Kommentar


        • #5
          Hoi!

          Also geholfen wird hier wirklich Und das auch noch sehr schnell ... ich bewunder euch ... [sliming off]

          So ....

          Hier die Ausgabe

          Folgende Reports wurden in die MySQL Datenbank übertragen:
          6133
          6134
          6135
          6137

          (Was auch passt weil es die vier txt dateien in dem Verzeichnis gibt)
          So stell ich mir vor das es momentan ist:

          Schleife liest txt aus und schreibt sie in mysql
          schleife liest txt aus
          schleife liest txt aus
          schleife liest txt aus

          kann das sein?

          mysql_error();
          error_reporting();
          Bringt beides keine Ausgaben.

          Kommentar


          • #6
            und $datei enthält das gewünschte?

            verstehe immer noch nicht, was dein problem ist.

            Kommentar


            • #7
              Problem ist das ich zwar vier textdateien im verzeichnis habe (die augenscheinlich auch alle durchlaufen) aber nur die erste txt richtig in die MySQL geschrieben wird. Sorry wenn ich mich da schlecht ausdrücke, bin noch Neuling was PHP angeht

              Kommentar


              • #8
                Original geschrieben von penizillin
                und $datei enthält das gewünschte?

                Kommentar


                • #9
                  ein:
                  printf ($datei);

                  gibt mir brav die vier dateinamen aus.
                  Wie gesagt, das auslesen ist nicht das Porblem, sondern die Schleife bzw. das schreiben in die SQL

                  Kommentar


                  • #10
                    zeig mal bitte aktuellen code (aber leserlich!)

                    Kommentar


                    • #11
                      Ich habe den Code nun zusammengeschrumpft, funktion ist die gleiche, die benannte txt wird in die mysql geschrieben, aber es schein ein problem mit dem erneuten schreiben zu geben, weil normalerweise wenn ich F5 drücke dann sollte der Inhalt der txt halt 2x in der DB stehen, so war es auch, nun aber wird die TXT einmal geschrieben, ändere ich die php (aufruf der txt zb. von 6135 auf 6134) wird dies nicht in die mysql geschrieben, als könnte man keine neue Datensätze hinzufügen?

                      Hier der aktuelle Code:

                      Code:
                      <?
                       mysql_connect("localhost", "root","");
                        mysql_select_db("reports");
                      $f = file('6134.txt');
                      for ($i = 0; $i < count($f); $i++) {
                          $tmp = explode(': ', $f[$i]);
                          $f[$i] = trim($tmp[1]);}
                          $eintrag = "INSERT INTO reports (jobid, jobsubject, companyname, tfp, tsp, pagesperfax, totalminutes, starttime, 
                      endtime, totalrecipients, successful, error_3900, error_3920, 
                      error_3932, error_3935, error_3936) VALUES ('$f[0]', '$f[1]', '$f[2]', 
                      '$f[3]', '$f[4]', '$f[5]', '$f[6]', '$f[7]', '$f[8]', '$f[10]', '$f[11]', '$f[12]', 
                      '$f[13]', '$f[14]', '$f[15]', '$f[16]')";
                       printf ($f[0]. "<br>");
                          $eintragen = mysql_query($eintrag);
                      ?>

                      Kommentar


                      • #12
                        Wo ist denn die For-Schleife zu Ende?
                        Und wie oft wird demzufolge $eintrag verändert und mysql_query() ausgeführt?
                        Ich sehe da nix von wegen 4 Dateien usw.!

                        Leserlich ist übrigens was anderes, nämlich schick eingerückt und mit PHP-Tags umzingelt.
                        Zuletzt geändert von onemorenerd; 08.06.2006, 17:46.

                        Kommentar


                        • #13
                          wenn sql keinen fehler ausspuckt überprüf mal folgendes:


                          PHP-Code:

                          <?
                           mysql_connect("localhost", "root","");
                            mysql_select_db("reports");
                          $f = file('6134.txt');
                          for ($i = 0; $i < count($f); $i++) {
                              $tmp = explode(': ', $f[$i]);
                              $f[$i] = trim($tmp[1]);}
                              $eintrag = "INSERT INTO reports (jobid, jobsubject, companyname, tfp, 
                          tsp, pagesperfax, totalminutes, starttime, endtime, totalrecipients, 
                          successful, error_3900, error_3920, error_3932, error_3935, error_3936) 
                          VALUES ('$f[0]', '$f[1]', '$f[2]', '$f[3]', '$f[4]', '$f[5]', '$f[6]', '$f[7]', '$f[8]', '$f
                          [10]', '$f[11]', '$f[12]', '$f[13]', '$f[14]', '$f[15]', '$f[16]')";

                           printf ($f[0]. "<br>");
                              $eintragen = mysql_query($eintrag);
                              
                              // MAL IM BROWSER SEHEN, WAS DAS QUERY SAGT:

                             echo "SQL: ".$eintrag."<br/>";

                          ?>
                          **********
                          arkos
                          **********

                          Kommentar


                          • #14
                            Hello, my name is NOOP. Sag mir was du meinst und ich formatier dir was du wilst

                            Aber des lief ja schon, mann, ich bin verzweifelt, mein zweites PHP Problem an einem Tag ... vielleicht sollt ich es einfach lassen für heute ... morgen sieht die Welt sicher wieder klarer aus (sogar für mich) ...

                            Kommentar


                            • #15
                              Original geschrieben von onemorenerd
                              Wo ist denn die For-Schleife zu Ende?
                              Und wie oft wird demzufolge $eintrag verändert und mysql_query() ausgeführt?
                              Ich sehe da nix von wegen 4 Dateien usw.!
                              wenn du deinen code normal formatieren würdest, würdest du es selbst merken.
                              Hello, my name is NOOP.
                              OffTopic:
                              eher NOP.

                              Kommentar

                              Lädt...
                              X