Ankündigung

Einklappen
Keine Ankündigung bisher.

MYSQL Fehler?

Einklappen

Neue Werbung 2019

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

  • MYSQL Fehler?

    hallo

    ich habe einen shop und versuche verzweifelt eine csv datei in sql zulesen.

    hierzu benutze ich ein eigenes uploadscript das danach die csv in die datenbank liest.

    meine upload.php
    Code:
    <?php
    if (isset($_REQUEST['los']))  {
        $size = $_FILES['datei']['size']; // Größe der Datei
        $name = $_FILES['datei']['name']; // Der Originalname
        $type = $_FILES['datei']['type']; // Der MIME Type der Datei
        $tmpname = $_FILES['datei']['tmp_name'];
        $name2 = "afs.CSV";
        $fullname = $path . $name2;
    
    
        if(eregi("(jpg|gif|txt|htm|html|csv)$",$name)) {
        if($size<800000 AND $size!=0) {
    
          move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);
     // Kopiert das Bild
    
    
          echo "<br><br>Die Datei erfolgreich hochgeladen.<br>";
          echo "Größe: ".$size." Byte<br>";
          echo "Name: ".$name."<br>";
          echo "MIME-Type: ".$type."<br>";
          echo "Ansehen: <a href='../../shop/admin/upload/afs.CSV'>".$name."</a>";
    
    
          print "<br><br>
          <table bgcolor=#fff5d7><tr><td>
          <a href=\"import.php?csv=$tmpname\"><b>Daten importieren</b></a>
          </td></tr></table>";
        }
    
        else {
          echo "Ihre Datei ist über 200 KB oder gleich 0";
        }
        }
    
        else {
        echo "Falsche Erweiterung: ".$name;
        }
    
      }
    das uploaden funktioniert bestens nur leider macht er mir nicht die csv in die datenbank mit der import.php


    Code:
    <? 
    require_once('_left2.php3');
    $db_hostname     = 'localhost';
    $db_user         = 'user';
    $db_pass         = 'passwort';
    $database        = 'db62980001';
    $table           = "shop_artikel";
    $csv             = 'upload/afs.CSV';
    #$csv = $HTTP_GET_VARS['csv'];
    if (!file_exists($csv)) die("Unable to connect to the File ($csv)...");
    mysql_connect($db_hostname,$db_user,$db_pass) or
       die("Unable to connect to the SQL server...");
    mysql_select_db($database);
    
    $query_del="delete from $table";
    $ergebnis_del=mysql_query($query_del);
    
    
    $query_text .= "LOAD DATA LOCAL INFILE '$csv' INTO TABLE $table FIELDS TERMINATED BY ';' IGNORE 1 LINES";
    mysql_db_query($database, $query_text) OR DIE("<b>Error in query:</b> " . $query_text . "<br><b>mySQL-Server's comment</b>: " . mysql_error());
    
               
    $query2 = "select * from $table";
    $result2 = mysql_query($query2);
    $num_artikel2 = mysql_num_rows($result2);
    $z = 0;
    while($z < $num_artikel2)        {
                    $nummer2 = mysql_result($result2,$z,"Artikelnummer");
                    $name = mysql_result($result2,$z,"Bezeichnung");
                    $bild = mysql_result($result2,$z,"Bild");
                    $eintrag = str_replace("S:Eigene BildergeschäftBildshop","",$bild);
                    $vk1 = mysql_result($result2,$z,"VK1");
                    $vk3 = mysql_result($result2,$z,"VK3");
                    $vk4 = mysql_result($result2,$z,"VK4");
                    $vk5 = mysql_result($result2,$z,"VK5");
                    $vk3_zw = str_replace(",",".",$vk3);
                    $vk4_zw = str_replace(",",".",$vk4);
                    $vk5_zw = str_replace(",",".",$vk5);
                    $vk3_netto = $vk3_zw/1.16 ;
                    $vk4_netto = $vk4_zw/1.16 ;
                    $vk5_netto = $vk5_zw/1.16 ;
                    $vk1_netto = str_replace(",",".",$vk1);
                    echo "<b>$name</b> ($eintrag)<br><br>
                    <b>VK3</b>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspArtikel-Nr:&nbsp;$nummer2&nbsp&nbsp&nbsp&nbspBrotto:&nbsp;$vk3&nbsp&nbsp&nbsp&nbspNetto:&nbsp;$vk3_netto<br>
                    <b>VK4</b>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspArtikel-Nr:&nbsp;$nummer2&nbsp&nbsp&nbsp&nbspBrotto:&nbsp;$vk4&nbsp&nbsp&nbsp&nbspNetto:&nbsp;$vk4_netto<br>
                    <b>VK5</b>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspArtikel-Nr:&nbsp;$nummer2&nbsp&nbsp&nbsp&nbspBrotto:&nbsp;$vk5&nbsp&nbsp&nbsp&nbspNetto:&nbsp;$vk5_netto<br><hr><br>
                    ";
                    $sql2="UPDATE $table set Bild='$eintrag', VK1 = '$vk1_netto', VK3 = '$vk3_netto', VK4 = '$vk4_netto', VK5 = '$vk5_netto'  where Artikelnummer='$nummer2'";
                    $res2=mysql_query ($sql2);
                    $z++;
    }
    
    print"<br><br><br><br>Daten wurden erfolgreich importiert und umgewandelt<br><br>";
    ?>
    er bringt immer den fehler
    Error in query: LOAD DATA LOCAL INFILE 'upload/afs.CSV' INTO TABLE shop_artikel FIELDS TERMINATED BY ';' IGNORE 1 LINES
    mySQL-Server's comment: File 'upload\afs.CSV' not found (Errcode: 2)

    aber die datei ist da

    meine csv datei


    Code:
    Artikelnummer;Bezeichnung;Bezeichnung_1;Langtext;VK1;VK3;VK4;VK5;Bild;Bestand;Bruttogewicht;Zusatznummer;Lieferbar;Werbetext;Bemerkung;
    1;Test Artikel;Testgruppe;Ich bin ein Test;49,938;;;51,156;;0;;;;;;
    danke für die hielfe


  • #2
    versuchs doch mal mit

    upload/afs.CSV

    Kommentar


    • #3
      danke für die antwort aber wo soll ich das ändern?

      er zeigt es mir zwar upload\afs.CSV als fehler an aber stehen alles so trinne upload/afs.CSV

      Kommentar


      • #4
        ok, hab gar nicht nachgeschaut, entschuldige.

        1. befindet sich die datei auf dem gleichen server?
        2. hat der benutzer respektive dienst recht darauf zuzugreifen? (windows oder linux?)

        gruss

        Kommentar


        • #5
          läuft alles auf einem windows root
          und liegen alle im verzeichniss shop
          windows und rechte hmm^^

          Kommentar


          • #6
            Gib doch mal den vollständigen Pfad mit...

            Kommentar


            • #7
              Windows und GROSSbuchstaben... das ist immer son Ratespiel.

              Versuch mal den Dateinamen nur mit Kleinbuchstaben zu schreiben und benenn die Datei auf dem Webspace entsprechend um.

              Noch ne Idee:
              Der Befehl LOAD DATA INFILE liest Reihen aus einer Textdatei in eine Tabelle mit einer sehr hohen Geschwindigkeit. Wenn das Schlüsselwort LOCAL angegeben wurde, dann wird die Datei von dem Client Host gelesen. Falls nicht, dann muß sich die Datei auf dem Server befinden.
              PHP-Code:
              if ($var != 0) {
                
              $var 0;

              Kommentar


              • #8
                Zitat von Wolla Beitrag anzeigen
                Windows und GROSSbuchstaben... das ist immer son Ratespiel.
                Ist das nicht mehr bei Linux der Fall?

                Kommentar

                Lädt...
                X