Ankündigung

Einklappen
Keine Ankündigung bisher.

csv Datei hochladen, bearbeiten und in mysql importieren

Einklappen

Neue Werbung 2019

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

  • #16
    indem du deine Schleife ein wenig umbaust - Achtung ich hab noch etwas geändert, damit die erste Zeile aus der csv mit den Spaltenköpfen ignoriert wird

    PHP-Code:

    $query 
    "INSERT INTO dtg_shop 
                     (Shop, 
                     ProductId, 
                     ProgramId, 
                     MerchantProductNumber, 
                     ProductName, 
                     ProductPrice, 
                     ProductLongDescription, 
                     Status, 
                     MerchantProductCategory, 
                     ZanoxProductCategory, 
                     ImageSmallURL, 
                     ImageMediumURL, 
                     ProductManufacturerBrand, 
                     ZanoxProductLink, 
                     ZanoxProductCategoryNumber, 
                     MerchantProductCategoryNumber, 
                     DeliveryTime, 
                     TermsOfContract, 
                     ProductEAN, 
                     ProductPriceOld, 
                     CurrencySymbolOfPrice, 
                     UpdateDate, 
                     ValidFromDate, 
                     ValidToDate, 
                     ProductShortDescription, 
                     ImageLargeURL) VALUES "

     
    $cc=0;                 
    while( !
    feof($fp) ) { 
      
    $zeile fgetcsv  $fp  4096 ";"  ); 
      if (
    $cc>0) { 
       
      
    $values " ('".mysql_real_escape_string($zeile[Shop])."', 
                    '"
    .mysql_real_escape_string($zeile[ProductId])."', 
                    "
    .mysql_real_escape_string($zeile[ProgramId]).", 
                    "
    .mysql_real_escape_string($zeile[MerchantProductNumber]).", 
                    '"
    .mysql_real_escape_string($zeile[ProductName])."', 
                    '"
    .mysql_real_escape_string($zeile[ProductPrice])."', 
                    '"
    .mysql_real_escape_string($zeile[ProductLongDescription])."', 
                     "
    .mysql_real_escape_string($zeile[Status]).", 
                    '"
    .mysql_real_escape_string($zeile[MerchantProductCategory])."', 
                    '"
    .mysql_real_escape_string($zeile[ZanoxProductCategory])."', 
                    '"
    .mysql_real_escape_string($zeile[ImageSmallURL])."', 
                    '"
    .mysql_real_escape_string($zeile[ImageMediumURL])."', 
                    '"
    .mysql_real_escape_string($zeile[ProductManufacturerBrand])."', 
                    '"
    .mysql_real_escape_string($zeile[ZanoxProductLink])."', 
                    '"
    .mysql_real_escape_string($zeile[ZanoxProductCategoryNumber])."', 
                    '"
    .mysql_real_escape_string($zeile[MerchantProductCategoryNumber])."', 
                    '"
    .mysql_real_escape_string($zeile[DeliveryTime])."', 
                    '"
    .mysql_real_escape_string($zeile[TermsOfContract])."', 
                    '"
    .mysql_real_escape_string($zeile[ProductEAN])."', 
                    '"
    .mysql_real_escape_string($zeile[ProductPriceOld])."', 
                    '"
    .mysql_real_escape_string($zeile[CurrencySymbolOfPrice])."', 
                    '"
    .mysql_real_escape_string($zeile[UpdateDate])."', 
                    '"
    .mysql_real_escape_string($zeile[ValidFromDate])."', 
                    '"
    .mysql_real_escape_string($zeile[ValidToDate])."', 
                    '"
    .mysql_real_escape_string($zeile[ProductShortDescription])."', 
                    '"
    .mysql_real_escape_string($zeile[ImageLargeURL])."' )"
      

               echo 
    $query.$values."<br>"

            
    mysql_unbuffered_query($query.$values) or die(mysql_error());
       }
       
    $cc++;

    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

    Kommentar


    • #17
      Zitat von eagle275 Beitrag anzeigen
      indem du deine Schleife ein wenig umbaust - Achtung ich hab noch etwas geändert, damit die erste Zeile aus der csv mit den Spaltenköpfen ignoriert wird

      PHP-Code:

      $query 
      "INSERT INTO dtg_shop 
                       (Shop, 
                       ProductId, 
                       ProgramId, 
                       MerchantProductNumber, 
                       ProductName, 
                       ProductPrice, 
                       ProductLongDescription, 
                       Status, 
                       MerchantProductCategory, 
                       ZanoxProductCategory, 
                       ImageSmallURL, 
                       ImageMediumURL, 
                       ProductManufacturerBrand, 
                       ZanoxProductLink, 
                       ZanoxProductCategoryNumber, 
                       MerchantProductCategoryNumber, 
                       DeliveryTime, 
                       TermsOfContract, 
                       ProductEAN, 
                       ProductPriceOld, 
                       CurrencySymbolOfPrice, 
                       UpdateDate, 
                       ValidFromDate, 
                       ValidToDate, 
                       ProductShortDescription, 
                       ImageLargeURL) VALUES "

       
      $cc=0;                 
      while( !
      feof($fp) ) { 
        
      $zeile fgetcsv  $fp  4096 ";"  ); 
        if (
      $cc>0) { 
         
        
      $values " ('".mysql_real_escape_string($zeile[Shop])."', 
                      '"
      .mysql_real_escape_string($zeile[ProductId])."', 
                      "
      .mysql_real_escape_string($zeile[ProgramId]).", 
                      "
      .mysql_real_escape_string($zeile[MerchantProductNumber]).", 
                      '"
      .mysql_real_escape_string($zeile[ProductName])."', 
                      '"
      .mysql_real_escape_string($zeile[ProductPrice])."', 
                      '"
      .mysql_real_escape_string($zeile[ProductLongDescription])."', 
                       "
      .mysql_real_escape_string($zeile[Status]).", 
                      '"
      .mysql_real_escape_string($zeile[MerchantProductCategory])."', 
                      '"
      .mysql_real_escape_string($zeile[ZanoxProductCategory])."', 
                      '"
      .mysql_real_escape_string($zeile[ImageSmallURL])."', 
                      '"
      .mysql_real_escape_string($zeile[ImageMediumURL])."', 
                      '"
      .mysql_real_escape_string($zeile[ProductManufacturerBrand])."', 
                      '"
      .mysql_real_escape_string($zeile[ZanoxProductLink])."', 
                      '"
      .mysql_real_escape_string($zeile[ZanoxProductCategoryNumber])."', 
                      '"
      .mysql_real_escape_string($zeile[MerchantProductCategoryNumber])."', 
                      '"
      .mysql_real_escape_string($zeile[DeliveryTime])."', 
                      '"
      .mysql_real_escape_string($zeile[TermsOfContract])."', 
                      '"
      .mysql_real_escape_string($zeile[ProductEAN])."', 
                      '"
      .mysql_real_escape_string($zeile[ProductPriceOld])."', 
                      '"
      .mysql_real_escape_string($zeile[CurrencySymbolOfPrice])."', 
                      '"
      .mysql_real_escape_string($zeile[UpdateDate])."', 
                      '"
      .mysql_real_escape_string($zeile[ValidFromDate])."', 
                      '"
      .mysql_real_escape_string($zeile[ValidToDate])."', 
                      '"
      .mysql_real_escape_string($zeile[ProductShortDescription])."', 
                      '"
      .mysql_real_escape_string($zeile[ImageLargeURL])."' )"
        

                 echo 
      $query.$values."<br>"

              
      mysql_unbuffered_query($query.$values) or die(mysql_error());
         }
         
      $cc++;


      Danke aber irgendwas läuft da schief denke ich -> er gibt mir gaaanz viele 0/0/0/0/0/0/0 wieder?! Kann es sein weil ich die erste Zeile schon gelöscht hatte!? Hab die Parameter nicht wieder eingefügt weil ich dachte, dass dann eben der erste Artikel nur nicht reinkommt?!

      Es sieht so aus, als würde er gar nichts in der Tabelle finden?!

      Script :

      PHP-Code:
      <?php
      include('../inc/mysql.inc.php');
      $db mysql_connect($sql['host'],$sql['uid'],$sql['psw']) or die ("Keine Verbindung zu der Datenbank möglich.");
      mysql_select_db($sql['db'], $db);


      $fp fopen("ProductData.csv""r");



      //Datenbankverbindung besteht

      define("Shop"0);
      define("ProductId"1);
      define("ProgramId"2);
      define("MerchantProductNumber"3);
      define("ProductName"4);
      define("ProductPrice"5);
      define("ProductLongDescription"6);
      define("Status"7);
      define("MerchantProductCategory"8);
      define("ZanoxProductCategory"9);
      define("ImageSmallURL"10);
      define("ImageMediumURL"11);
      define("ProductManufacturerBrand"12);
      define("ZanoxProductLink"13);
      define("ZanoxProductCategoryNumber"14);
      define("MerchantProductCategoryNumber"15);
      define("DeliveryTime"16);
      define("TermsOfContract"17);
      define("ProductEAN"18);
      define("ProductPriceOld"19);
      define("CurrencySymbolOfPrice"20);
      define("UpdateDate"21);
      define("ValidFromDate"22);
      define("ValidToDate"23);
      define("ProductShortDescription"24);
      define("ImageLargeURL"25);


       
      $query "INSERT INTO dtg_shop
                       (Shop,
                       ProductId,
                       ProgramId,
                       MerchantProductNumber,
                       ProductName,
                       ProductPrice,
                       ProductLongDescription,
                       Status,
                       MerchantProductCategory,
                       ZanoxProductCategory,
                       ImageSmallURL,
                       ImageMediumURL,
                       ProductManufacturerBrand,
                       ZanoxProductLink,
                       ZanoxProductCategoryNumber,
                       MerchantProductCategoryNumber,
                       DeliveryTime,
                       TermsOfContract,
                       ProductEAN,
                       ProductPriceOld,
                       CurrencySymbolOfPrice,
                       UpdateDate,
                       ValidFromDate,
                       ValidToDate,
                       ProductShortDescription,
                       ImageLargeURL) VALUES "
      ;
       
      $cc=0;
      while( !
      feof($fp) ) {
        
      $zeile fgetcsv  $fp  4096 ";"  );
        if (
      $cc>0) {

        
      $values " ('".mysql_real_escape_string($zeile[Shop])."',
                      '"
      .mysql_real_escape_string($zeile[ProductId])."',
                      '"
      .mysql_real_escape_string($zeile[ProgramId])."',
                      '"
      .mysql_real_escape_string($zeile[MerchantProductNumber])."',
                      '"
      .mysql_real_escape_string($zeile[ProductName])."',
                      '"
      .mysql_real_escape_string($zeile[ProductPrice])."',
                      '"
      .mysql_real_escape_string($zeile[ProductLongDescription])."',
                      '"
      .mysql_real_escape_string($zeile[Status])."',
                      '"
      .mysql_real_escape_string($zeile[MerchantProductCategory])."',
                      '"
      .mysql_real_escape_string($zeile[ZanoxProductCategory])."',
                      '"
      .mysql_real_escape_string($zeile[ImageSmallURL])."',
                      '"
      .mysql_real_escape_string($zeile[ImageMediumURL])."',
                      '"
      .mysql_real_escape_string($zeile[ProductManufacturerBrand])."',
                      '"
      .mysql_real_escape_string($zeile[ZanoxProductLink])."',
                      '"
      .mysql_real_escape_string($zeile[ZanoxProductCategoryNumber])."',
                      '"
      .mysql_real_escape_string($zeile[MerchantProductCategoryNumber])."',
                      '"
      .mysql_real_escape_string($zeile[DeliveryTime])."',
                      '"
      .mysql_real_escape_string($zeile[TermsOfContract])."',
                      '"
      .mysql_real_escape_string($zeile[ProductEAN])."',
                      '"
      .mysql_real_escape_string($zeile[ProductPriceOld])."',
                      '"
      .mysql_real_escape_string($zeile[CurrencySymbolOfPrice])."',
                      '"
      .mysql_real_escape_string($zeile[UpdateDate])."',
                      '"
      .mysql_real_escape_string($zeile[ValidFromDate])."',
                      '"
      .mysql_real_escape_string($zeile[ValidToDate])."',
                      '"
      .mysql_real_escape_string($zeile[ProductShortDescription])."',
                      '"
      .mysql_real_escape_string($zeile[ImageLargeURL])."' )";


                 echo 
      $query.$values."<br>";

              
      mysql_unbuffered_query($query.$values) or die(mysql_error());
         }
         
      $cc++;
      }



      ?>

      Kommentar


      • #18
        Habe es denke ich geschafft - der Import von 120 Testleads läuft noch aber ich denke es funzt -> danke dir vielmals!!!

        Nur eine Frage noch - wahrscheinlich ein Dateiproblem - ich habe die Datei in Excell bearbeitet und bei manchen Feldern war ein "=" Zeichen am Anfang - Excell hat natürlich eine Formel gesehen wo keine ist und eine Fehlermeldeung #NAME ausgegeben. kann ich da was machen dass ich nicht immer alle "=" Zeichen in Excell manuell entfernen muss?!

        Kommentar


        • #19
          nun wenn du die erste Zeile schon gelöscht hast, kannst du meine "Erweiterung" um $cc und die If-Abfrage auch rauslassen ..

          .. hm ..

          probier mal echo $zeile[0]."<br>";

          direkt nach $zeile=fgetcsv ($fp..
          "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

          Kommentar


          • #20
            Zitat von eagle275 Beitrag anzeigen
            nun wenn du die erste Zeile schon gelöscht hast, kannst du meine "Erweiterung" um $cc und die If-Abfrage auch rauslassen ..

            .. hm ..

            probier mal echo $zeile[0]."<br>";

            direkt nach $zeile=fgetcsv ($fp..
            Hab die Parameter wieder eingefügt und schon ging es!

            Kommentar


            • #21
              nein, da kannst du wenig machen ..

              Excel ist halt "speziell" ..

              außer alle = durch '= ersetzen .. apostroph-gleichheitszeichen sollte excel am Formel-Automatismus hindern
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

              Kommentar


              • #22
                Zitat von eagle275 Beitrag anzeigen
                nein, da kannst du wenig machen ..

                Excel ist halt "speziell" ..

                außer alle = durch '= ersetzen .. apostroph-gleichheitszeichen sollte excel am Formel-Automatismus hindern
                Ok. Gut dann muss ich wohl die Suchen ersetzen Funktion von Excell benutzen - sooo viel Arbeit ist es ja auch nicht zusätzlich wenn ich die Datei sowieso schon mal auf habe.

                Noch mal eine Logikfrage - so wie wir es nun gemacht haben, habe ich ja auch keine Problem mit Upload Zeitlimits bei mysql weil jedes mal die INSERT neu gestartet wird oder nicht?!

                Kommentar


                • #23
                  nicht mit dem Zeitlimit von mysql .. aber das Zeitlimit von php kann dir dazwischenfunken, wenn die Datei zu lang ist ... viele Webhoster geben max 30 sekunden Zeit für einen Durchlauf des PHP interpreters ....

                  du kannst aber probieren am Anfang des Imports set_time_limit(0);
                  einzubauen ...
                  "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                  Kommentar

                  Lädt...
                  X