load data script geht net..

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

  • load data script geht net..

    hi ich würde gerne eine csv datei per button auswählen und die daten in eine bestehnde tabelle eintragen leider geht das net...
    ich bekomme immer diese fehlermeldung
    Grund: File 'D:Serverxampp mpphpDD.tmp' not found (Errcode: 22)

    hier mal der code...
    PHP-Code:
    <?php

    include("connect.php");



    if(!
    $_REQUEST[submit]) {
    ?>
        <form method='post' enctype="multipart/form-data">
        <input type='file' name='userfile'><br/>
        <input type='submit' name='submit' value='go'>
        </form>
    <?php
    }
    else {

    $query="LOAD  DATA LOCAL INFILE '".$_FILES['userfile']['tmp_name']."' 
    REPLACE  INTO  TABLE  `meinetabelle` 
    FIELDS  TERMINATED  BY  '\;'
    OPTIONALLY  ENCLOSED  BY  '\"'
    ESCAPED  BY  ''
    LINES  TERMINATED  BY  '\r\n'
    IGNORE 1 LINES;"
    ;

    $result=mysql_query($query); 
    if(
    $result)
        echo 
    "abfrage ausgeführt.";
    else
        echo 
    "Grund: ".mysql_error();

    }    

    ?>
    was mach ich falsch...
    wenn ich das hier weglasse $result=mysql_query($query); und anstatt if($result) if ($query) mache dann gibt er mir als Meldung abfrage ausgeführt. zurück....

    ich checks net danke mal für die antwort..

  • #2
    Grund: File 'D:Serverxampp mpphpDD.tmp' not found (Errcode: 22)
    Da steht doch der Grund! Das File gibts einfach nicht! Check mal die Pfade, dass die richtig sind und die Datei auch noch nicht gelöscht wurde! (Zugriffsrechte auch korrekt?)

    wenn ich das hier weglasse $result=mysql_query($query); und anstatt if($result) if ($query) mache dann gibt er mir als Meldung abfrage ausgeführt. zurück....
    Das hängt damit zusammen dass $result false zurückgibt, der Text dort ist aber immer "true".... if ($query) bringt also garnichts, da könntest du auch direkt if (true) schreiben
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      danke erstmal..

      ok das mit dem if(query) hab ich gerrafft ist ja logisch

      aber wie check ich bitte ob der pfad stimmt und ob die datei gelöscht ist..
      ich wähl dich doch mittels dem formular aus

      was ich komisch finde ich in dieser Fehlermeldung ist

      Grund: File 'D:Serverxampp mpphpDD.tmp' not found (Errcode: 22)

      D:Serverxampp gibt es gar nicht wenn dann müsste es D:\Server\xampp heissen....

      Kommentar


      • #4
        PHP-Code:
        ...
        else {
        /*
        $query="LOAD  DATA LOCAL INFILE '".$_FILES['userfile']['tmp_name']."' 
        REPLACE  INTO  TABLE  `meinetabelle` 
        FIELDS  TERMINATED  BY  ';'
        OPTIONALLY  ENCLOSED  BY  '\"'
        ESCAPED  BY  ''
        LINES  TERMINATED  BY  '\r\n'
        IGNORE 1 LINES;";

        $result=mysql_query($query); 
        if($result)
            echo "abfrage ausgeführt.";
        else
            echo "Grund: ".mysql_error();
        */
        var_dump($_FILES['userfile']['tmp_name']);

        Was ergibt dieser Var Dump ? Kannst du den Pfad mal hier posten ?

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          hi hab das mal gemacht

          hier ist das was er mir ausgibt..
          string(29) "D:\Server\xampp\tmp\php3A.tmp"
          danke mal im vorraus

          Kommentar


          • #6
            Dann würde ich dir testweise mal das empfehlen. Schreibe den Pfad zur Datei mal hartcodiert in den Code
            PHP-Code:
            $query='LOAD  DATA LOCAL INFILE "D:\\Server\\xampp\\tmp\\php3A.tmp" 
            REPLACE  INTO  TABLE  `meinetabelle` 
            FIELDS  TERMINATED  BY  ";"
            OPTIONALLY  ENCLOSED  BY  \\'
            ESCAPED  BY  \\'\\'
            LINES  TERMINATED  BY  "\r\n"
            IGNORE 1 LINES;'; 
            Da \ normalerweise ein Escapezeichen ist und unter Windoof aber zum Pfad gehört, denke ich es könnte daran liegen, dass man in diesem Falle die Pfadangabe mit \\ escapen muss.
            Dein anderes Problem ist, dass PHP Steuerzeichen in Strings findet, die mit "und" umschlossen sind.
            <<"D:\Server\xampp\tmp\php3A.tmp">>
            So wird sicherlich \t als Tabulator interpretiert und fehlt danach in der Pfadangabe. Drum String IMMER in 'und' --> dann klappts auch mit den Steuerzeichen.


            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              ok danke mal tobi...
              ich habe es jetzt anders gelöst...

              habe jedoch 2 kleine probleme.. der code geht eigentlich ganz gut wie er jetzt ist nur ich bekomme kein Datum übertragen und ich weiß net wie ich es anstellen soll das er von zeile 2. anfängt.... das datum in der csv datei sieht so aus "Apr 1 2005 07:28:06" und in der datenbank sieht es so aus 2005/01/31 nach dem import steht da aber nur nullen...

              hier mal der code...

              PHP-Code:
              <?php

              include("connect.php");



              if(!
              $_REQUEST[submit]) {
              ?>
                  <form method='post' enctype="multipart/form-data">
                  <input type='file' name='userfile'><br/>
                  <input type='submit' name='submit' value='go'>
                  </form>
              <?php
              }
              else {
              $Dateizeiger fopen($_FILES['userfile']['tmp_name'] , "r");
              while((
              $Daten fgetcsv($Dateizeiger10000";")) != FALSE){
              $AnzahlDerFelder count($Daten);
              if(
              count($Daten)>=0){
              $imp_records 
              array(
              'Auktionsende'=>$Daten[0],'Auktionsnummer'=>$Daten[1],'Produkttitel'=>$Daten[],'Anzahl Stück mit diesem Kaufpreis'=>$Daten[3],'Kaufpreis in CHF pro Stück'=>$Daten[4],'Transportkosten in CHF'=>$Daten[5],'Lieferkonditionen'=>$Daten[6],'Zahlungskonditionen'=>$Daten[7],'Benutzername'=>$Daten[8],'Firmenname'=>$Daten[9],'Anrede'=>$Daten[10],'Sprache'=>$Daten[11],'Vorname'=>$Daten[12],
              'Nachname'=>$Daten[13],'Strasse'=>$Daten[14],'Hausnummer'=>$Daten[15],'Adresszusatz'=>$Daten[16],'Land'=>$Daten[17],'Postleitzahl'=>$Daten[18],'Ortschaft'=>$Daten[19],'Telefonnummer'=>$Daten[20],'Mobilnummer'=>$Daten[21],'Emailadresse'=>$Daten[22],''=>$Daten[23],''=>$Daten[24],''=>$Daten[25],''=>$Daten[26],''=>$Daten[27],''=>$Daten[28],''=>$Daten[29],''=>$Daten[30],''=>$Daten[31],''=>$Daten[32],''=>$Daten[33],''=>$Daten[34],''=>$Daten[35],''=>$Daten[36]);




              $sql="insert into `erfolgreiche auktionen` (`Auktionsende` , `Auktionsnummer` , `Produkttitel` , `Anzahl Stück mit diesem Kaufpreis`  ,`Kaufpreis in CHF pro Stück` , `Transportkosten in CHF`,  `Lieferkonditionen` , `Zahlungskonditionen` ,`Benutzername`  ,`Firmenname` ,`Anrede`  ,`Sprache`  ,`Vorname` , `Nachname` , `Strasse`,  `Hausnummer` , `Adresszusatz`  ,`Land` , `Postleitzahl` , `Ortschaft` , `Telefonnummer` , `Mobilnummer` , `Emailadresse` , `Bezahlt` , `Gesendet`  ,`Gedruckt`  ,`Auktionslink` , `Bezahldatum`,  `Versanddatum` , `Kundennummer` , `Zahlungserinnerung_Datum` , `Zahlungserinnerung` , `Storniert` , `Nicht_stornieren` , `Track_Nr`,  `ArtNr` , `Memo`) values 
              ('
              $Daten[0]','$Daten[1]','$Daten[2]','$Daten[3]','$Daten[4]','$Daten[5]','$Daten[6]','$Daten[7]','$Daten[8]','$Daten[9]','$Daten[10]','$Daten[11]','$Daten[12]',
              '
              $Daten[13]','$Daten[14]','$Daten[15]','$Daten[16]','$Daten[17]','$Daten[18]','$Daten[19]','$Daten[20]','$Daten[21]','$Daten[22]','$Daten[23]','$Daten[24]','$Daten[25]','$Daten[26]','$Daten[27]','$Daten[28]','$Daten[29]','$Daten[30]','$Daten[31]','$Daten[32]','$Daten[33]','$Daten[34]','$Daten[35]','$Daten[36]') ";
              $ausführen mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);

              }

              }
              ;
              fclose($Dateizeiger);
              }
              ?>

              hoffe du kannst mir dabei helfen dann ist das mit dem import eigentlich geklärt...
              daaaaaaaaaaankkkeeeeeeee

              Kommentar


              • #8
                Brich den Code um, dann schaun wir weiter !!

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  wie brech ich den code um... was muss ich hier eintragen....

                  Kommentar


                  • #10
                    ok habs jetzt so gemacht kann den vorherigen beitrag nicht mehr editieren hoffe es ist so besser...

                    PHP-Code:
                    <?php

                    include("connect.php");



                    if(!
                    $_REQUEST[submit]) {
                    ?>
                        <form method='post' enctype="multipart/form-data">
                        <input type='file' name='userfile'><br/>
                        <input type='submit' name='submit' value='go'>
                        </form>
                    <?php
                    }
                    else {
                    $Dateizeiger fopen($_FILES['userfile']['tmp_name'] , "r");
                    while((
                    $Daten fgetcsv($Dateizeiger10000";")) != FALSE){
                    $AnzahlDerFelder count($Daten);
                    if(
                    count($Daten)>=0){
                    $imp_records 
                    array(
                    'Auktionsende'=>$Daten[0],
                    'Auktionsnummer'=>$Daten[1],
                    'Produkttitel'=>$Daten[],
                    'Anzahl Stück mit diesem Kaufpreis'=>$Daten[3],
                    'Kaufpreis in CHF pro Stück'=>$Daten[4],
                    'Transportkosten in CHF'=>$Daten[5],
                    'Lieferkonditionen'=>$Daten[6],
                    'Zahlungskonditionen'=>$Daten[7],
                    'Benutzername'=>$Daten[8],
                    'Firmenname'=>$Daten[9],
                    'Anrede'=>$Daten[10],
                    'Sprache'=>$Daten[11],
                    'Vorname'=>$Daten[12],
                    'Nachname'=>$Daten[13],
                    'Strasse'=>$Daten[14],
                    'Hausnummer'=>$Daten[15],
                    'Adresszusatz'=>$Daten[16],
                    'Land'=>$Daten[17],
                    'Postleitzahl'=>$Daten[18],
                    'Ortschaft'=>$Daten[19],
                    'Telefonnummer'=>$Daten[20],
                    'Mobilnummer'=>$Daten[21],
                    'Emailadresse'=>$Daten[22],
                    ''=>$Daten[23],''=>$Daten[24],
                    ''=>$Daten[25],''=>$Daten[26],
                    ''=>$Daten[27],''=>$Daten[28],
                    ''=>$Daten[29],''=>$Daten[30],
                    ''=>$Daten[31],''=>$Daten[32],
                    ''=>$Daten[33],''=>$Daten[34],
                    ''=>$Daten[35],''=>$Daten[36]);




                    $sql="insert into `erfolgreiche auktionen`
                     (`Auktionsende` , `Auktionsnummer` , `Produkttitel` ,
                     `Anzahl Stück mit diesem Kaufpreis`  ,
                    `Kaufpreis in CHF pro Stück` , 
                    `Transportkosten in CHF`, 
                     `Lieferkonditionen` ,
                     `Zahlungskonditionen` ,
                    `Benutzername`  ,
                    `Firmenname` ,
                    `Anrede`
                      ,`Sprache`  ,
                    `Vorname` ,
                     `Nachname` , 
                    `Strasse`, 
                     `Hausnummer` , 
                    `Adresszusatz`  ,
                    `Land` ,
                     `Postleitzahl` ,
                     `Ortschaft` , 
                    `Telefonnummer` , 
                    `Mobilnummer` , 
                    `Emailadresse` , 
                    `Bezahlt` , 
                    `Gesendet`  ,
                    `Gedruckt`  ,
                    `Auktionslink` , 
                    `Bezahldatum`,  
                    `Versanddatum` , 
                    `Kundennummer` , 
                    `Zahlungserinnerung_Datum` , 
                    `Zahlungserinnerung` , 
                    `Storniert` ,
                     `Nicht_stornieren` ,
                     `Track_Nr`,  
                    `ArtNr` , 
                    `Memo`) values
                     
                     ('
                    $Daten[0]','$Daten[1]','$Daten[2]','$Daten[3]','$Daten[4]','
                    $Daten[5]','$Daten[6]','$Daten[7]','$Daten[8]','$Daten[9]',
                    '
                    $Daten[10]','$Daten[11]','$Daten[12]',
                     '
                    $Daten[13]','$Daten[14]','$Daten[15]','$Daten[16]',
                    '
                    $Daten[17]','$Daten[18]','$Daten[19]','$Daten[2 0]',
                    '
                    $Daten[21]','$Daten[22]','$Daten[23]','$Daten[24]',
                    '
                    $Daten[25]','$Daten[26]','$Daten[27]','$Dat en[28]',
                    '
                    $Daten[29]','$Daten[30]','$Daten[31]','$Daten[32]',
                    '
                    $Daten[33]','$Daten[34]','$Daten[35]','$Daten[36]') ";
                    $ausführen mysql_query($sql) or 
                    die(
                    mysql_error().'<br />Query: '.$sql);

                    }

                    }
                    ;
                    fclose($Dateizeiger);
                    }
                    ?>

                    Kommentar


                    • #11
                      und Tobi.. ist jetzt besser...

                      Kommentar


                      • #12
                        habe jedoch 2 kleine probleme.. der code geht eigentlich ganz gut wie er jetzt ist nur ich bekomme kein Datum übertragen und ich weiß net wie ich es anstellen soll das er von zeile 2. anfängt.... das datum in der csv datei sieht so aus "Apr 1 2005 07:28:06" und in der datenbank sieht es so aus 2005/01/31 nach dem import steht da aber nur nullen...

                        kann mir jemand vielleicht helfen -- ich brauch das ganz dringend.. wäre echt cool.. ich bin am verzweifeln..

                        Kommentar


                        • #13
                          Oh Gott... ich muss hier sogar scrollen um ins Textfeld zu kommen ... !!!


                          Sorg einfach dafür dass das Datum in einem Format ist dass die Datenbank kennt.

                          YYYY-MM-DD z.B.

                          Und bitte ändere das mit dem Code... Ich muss 5 17" TFT @1280x1024 durchscrollen ....
                          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                          var_dump(), print_r(), debug_backtrace und echo.
                          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                          Kommentar


                          • #14
                            erstmal sorry für den komischen textumbruch weiß net wie ich es zurück mache.... hab es jetzt gelöst mittels Datum formatierung und einem counter für die 2. zeile.. wenn es interessiert.

                            PHP-Code:
                            else {
                            $counter 1;

                            $Dateizeiger fopen($_FILES['userfile']['tmp_name'] , "r");
                            $counter 0;
                            while((
                            $Daten fgetcsv($Dateizeiger10000";")) != FALSE){
                            $counter++;
                              if (
                            $counter 2) {
                                
                            // $counter ist noch kleiner als 2 
                            //also weitermachen mit der nächsten Zeile
                                
                            continue;
                              }

                            $AnzahlDerFelder count($Daten);
                            $Daten[0] = date("Y-m-d H:i:s"strtotime($Daten[0]));
                            if(
                            count($Daten)>=0){
                            $imp_records 
                            ich danke euch für eure antworten...

                            Kommentar

                            Lädt...
                            X