CSV in DB einlesen

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

  • CSV in DB einlesen

    Hallo!
    Ich möchte über eine Upload-Feld eine CSV Datei einlesen können. Leider schaffe ich es nicht den korrekten Pfad zur Datei auszulesen!

    Hier meine Datei, welche das Formular (in welchem sich nur ein Upload-Feld befindet) einliest:

    PHP-Code:
    foreach($_FILES as $filename)
            {

                    
    $csvurl $filename['tmp_name'];

            }

            
    $row 1;                                      
            
    $handle fopen ($csvurl,"r");                  
    echo 
    "---->".$csvurl;
            while ( (
    $data fgetcsv ($handle1000";")) !== FALSE ) {
                
                    
    $strecke_speichern="INSERT INTO csv (active) VALUES ('1')";

               
    $result_strecke_speichern=mysql_query($strecke_speichern);       
            }
            
    fclose ($handle); 
    Meine Ausgabe der $csvurl sieht so aus: ---->/private/var/tmp/phpqSszBv
    Er kann ja also ganricht die Datei finden! Aber wenn ich es über $filename['name']; mache, bekomm ich ja nicht den Pfad zu Datei. Was mache ich hier falsch?

  • #2
    Schau dir das mal an. Dann wirst du erfahren, wo dein Fehler liegt.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Alles klar, ich sollte die Datei erst Zwischenspeichern, dann habe ich genau des Ort wo sie liegt, kann sie dann einlesen und danach wieder löschen! 100 Punkte?

      Kommentar


      • #4
        Zitat von Kangarooo Beitrag anzeigen
        100 Punkte?
        Aber nur, wenn es funktioniert.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Alles klar, die Datei wird eingelesen, aber eine Frage hätte ich noch: er liest mir nur die erste Zeile aus aus der CSV. Normalerweise müsste er doch jede Zeile durchgehen oder?

          PHP-Code:
          while ( ($data fgetcsv ($handle100000";")) !== FALSE ) { 

                          
          $strecke_speichern="INSERT INTO csv (active,groessen,farbe) VALUES ('1','".addslashes($data[0])."','".addslashes($data[1])."')";

                      
          $result_strecke_speichern=mysql_query($strecke_speichern);       
                  } 

          Kommentar


          • #6
            Hallo,

            ja, normalerweise liest fgetcsv alle Zeilen der Reihe nach aus. Hast du evtl. exotische oder kaputtkonvertierte Zeilenumbrüche drin? Da du die Datei nicht im binary-Modus öffnest, sollte PHP sowohl CR, LF als auch CRLF erkennen. Alles andere wäre ein Fehler. Sieh am besten mal mit einem Hex-Editor nach.

            Gruß,

            Amica
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Habe mir die CSV schnell selber gemacht und es steht nichts besonderes drin:
              PHP-Code:
              12345;lalalala;lololo;
              678910;jajajaja;tatatata

              Kommentar


              • #8
                Es kann natürlich auch ein Fehler beim Einfügen auftreten. So wie ich das sehe, ist dein Code auf sowas nicht vorbereitet. Fehlerbehandlung bei DB-Abfragen muss sein und PHP-Error-Reporting sowieso.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Habe den Fehler gefunden! Lag an meinen Einstellungen der CSV als ich sie abgespeichert habe!

                  Kommentar

                  Lädt...
                  X