Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfe benötigt CSV-MySQL

Einklappen

Neue Werbung 2019

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

  • Hilfe benötigt CSV-MySQL

    Hallo zusammen,

    Ich bin absoluter Anfänger was Scripte angeht.
    Ich möchte folgendes realisieren:

    Eine CSV Datei von einer URL einlesen und in der MySQL Datenband den Bestand ändere.
    Erste Spalte enthält die Artikelnummer und zweite Spalte den Bestand.
    Nur der Bestand soll in mysql dann angepasst werden.

    Das Ganze soll später dann automatisiert mit einem cronjob laufen.
    Kann mir dort evtl. Jemand ein script für schreiben oder Tips geben?
    Vielen Dank
    Grüße
    Sebastian


  • #2
    MySQL kann das Einlesen von (CSV-)Dateien selbst. Siehe LOAD DATA.

    Das einzige was du also machen musst ist also ein Script erstellen das die Datei von der URL einliest und dann das LOAD DATA-Statement so anpassen, das es dem Format deiner CSV-Datei entspricht.
    Und dann halt einen Cronjob dafür erstellen.

    Kommentar


    • #3
      Wenn ich jetzt wüsste wie das geht.
      Kannst du mir evtl. Helfen?
      Vielen Dank

      Kommentar


      • #4
        Habe gerade gesehen, das du beim Einlesen ja eigentlich ein UPDATE der bestehenden Daten brauchst. Das ist leider nicht ganz so trivial zu lösen, sondern nur über Umwege. (Beschreibung z.B. hier: http://stackoverflow.com/questions/1...ate-key-update)

        Helfen tu ich bereits, wenn du jemanden suchst der dir das vollständig abnimmt, dann solltest du in der Scriptbörse nachfragen. Hier gibt es nur Hilfe zur Selbsthilfe.

        Kommentar


        • #5
          LOAD DATA entspricht einem INSERT und ist deshalb nicht geeignet, vorhandene Datensätze zu aktualisieren.
          Aquaa hat zudem keine Informationen geliefert wie seine DB und CSV aufgebaut sind.
          Kann mir dort evtl. Jemand ein script für schreiben
          Dafür bist du hier in der falschen Rubrik, für Tipps und Hilfen erwarten wir einen Lösungsansatz von dir.

          Edit: etwas zu langsam..
          PHP-Klassen auf github

          Kommentar


          • #6
            Danke Dir schonmal. Habe es jetzt mal im Script Forum eingestellt. Denn ich glaube, ich komme alleine nicht zum Ziel.
            Dennoch probiere ich es.

            Kommentar


            • #7
              Zitat von jspit Beitrag anzeigen
              LOAD DATA entspricht einem INSERT und ist deshalb nicht geeignet, vorhandene Datensätze zu aktualisieren.
              Aquaa hat zudem keine Informationen geliefert wie seine DB und CSV aufgebaut sind.


              Dafür bist du hier in der falschen Rubrik, für Tipps und Hilfen erwarten wir einen Lösungsansatz von dir.
              Was genau musst du wissen zum Aufbau?
              Für die CSV Habich ja geschrieben: erste Spalte Artikelnummer zweite Spalte Bestand
              Und in der Ersten Zeile jeweils der Name Artikelnummer und Bestand

              Kommentar


              • #8
                Die Datei in einer Schleife mit fgetscsv einlesen und dann ein Update ausführen.
                Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                Kommentar


                • #9
                  Ich habe einen Code-Schnipsel gefunden.
                  Kann man den nach meinen Bedürfnissen anpassen?
                  Wenn ja, wie und was?

                  PHP-Code:
                    <form action="<? echo $SERVER[phpSelf] ?>" method="post" enctype="multipart/form-data"> 
                    <p>CSV-Datei</p> 
                    <input type="file" name="csv_datei" id="csv_datei" value="c:\*.csv" /> <br /> 
                    <input type="submit" name="submit" id="submit" /> 
                   </form> 


                  <? 
                  // Systemeinstellungen 
                  $user = "xxxxx"; 
                  $pw = "xxxxx"; 
                  $host = "localhost"; 
                  $database = "xxxxxx"; 
                  $table = "xxxxxx"; 

                  $verbindung = mysql_connect($host, $user, $pw) or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden!!!"); 

                  mysql_select_db( $database, $verbindung ); 


                  if($_POST['submit']) 

                   if(move_uploaded_file(".$_POST[csv_datei].", './temp/')) { 
                     echo '<h3>Upload Successful!</h3>'; 
                   } 
                   else { 
                    echo '<h3>ERROR</h3>'; 
                   } 

                   $datei_temp = "./temp/.$_POST[csv_datei]."; 
                   $row = 1; echo $csv_data; 
                   $handle = fopen ($datei_temp,"r"); 
                   while ($data = fgetcsv ($handle, 1000, ";")) 
                   { 

                    $insert_csv  = sprintf(" 
                      INSERT INTO %s(pid, name, sn, date, time) 
                      VALUES ('493', '%s', '%s', '%s', '%s')", 
                      $table, $data[0], $data[1], $data[2], $data[3]); 

                    mysql_query($insert_csv); 
                   } fclose ($handle); 

                  mysql_close( $verbindung); 
                  ?>

                  Kommentar


                  • #10
                    Zitat von Aquaa Beitrag anzeigen
                    Ich habe einen Code-Schnipsel gefunden.
                    Den du aber bitte sofort wieder löscht, weil das Mist hoch 9 ist.

                    PHP-Code:
                    $SERVER[phpSelf
                    Gibt es nicht

                    Script hat Shorttags (<?)

                    Script nutzt veraltete MySQL-Extension

                    Script überprüft keine Fehler
                    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                    Kommentar


                    • #11
                      [QUOTE=uha;800718]Den du aber bitte sofort wieder löscht, weil das Mist hoch 9 ist.



                      Schon geschehen.

                      Kommentar


                      • #12
                        Ich meinte eigentlich bei dir löschen, nicht gleich hier im Forum

                        Hätte ja noch als schlechtes Beispiel dienen können
                        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                        Kommentar


                        • #13
                          +1

                          Zitat von uha Beitrag anzeigen
                          Die Datei in einer Schleife mit fgetscsv einlesen und dann ein Update ausführen.
                          Versuch besser dies selbst umzusetzen, fange mit dem Einlesen deiner CSV an.
                          PHP-Klassen auf github

                          Kommentar


                          • #14
                            Okay, wenn ich wenn ich das richtig verstehe müsste das so aussehen?

                            PHP-Code:
                            <?php
                            $row 
                            1;
                            if ((
                            $handle fopen("http://xxx..XXX/test.csv""r")) !== FALSE) {
                                while ((
                            $data fgetcsv($handle1000",")) !== FALSE) {
                                    
                            $num count($data);
                                    echo 
                            "<p> $num fields in line $row: <br /></p>\n";
                                    
                            $row++;
                                    for (
                            $c=0$c $num$c++) {
                                        echo 
                            $data[$c] . "<br />\n";
                                    }
                                }
                                
                            fclose($handle);
                            }
                            ?>

                            Kommentar


                            • #15
                              Sagen wir es mal so, einen Ansatz hat man schon mal, obwohl da natürlich Sachen gemacht werden, die du nicht brauchst. Aber das Einlesen passt schon mal.
                              Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                              Kommentar

                              Lädt...
                              X