excel oder sonst. datei in tabelle übernehmen

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

  • excel oder sonst. datei in tabelle übernehmen

    Hi!

    gibt es eine möglichkeit, den inhalt einer excel-datei in eine sql-tabelle zu übernehmen!??!?

  • #2
    hmm,

    nach text/csv Datei exportieren und dann in der Datenbank einlesen. phpmyadmin kann sowas importieren AFAIK.

    Kommentar


    • #3
      stimmt, ich hab die funktion im phpmyadmin gefunden!

      gibt es auch die möglichkeit, das ganze automatisch und zeitgesteuert ausführen zu lassen!

      die *.csv datei liegt lokal auf dem rechner, die webseite eben auf einem gemieteten webspace...!?!?

      Kommentar


      • #4
        Hmm Serverseitig nur wenn cronjobs möglich sind... Ansonsten halt von lokaler Kiste aus mit at/Taskplaner und z.B. einem lokal laufenden PHP-Skript....

        Kommentar


        • #5
          ich hab die möglichkeit cronjobs zu nutzen...!

          die *.csv wird allerdings von einer anderen datenbank im lokalen Netzwerk erstellt! das heisst die müsste dann immer hochgeladen werden?

          oder gibt es die möglichkeit per cronjob zu sagen, dass zu einer bestimmten zeit eine bestimmte datei VON EINEM RECHNER DES FIRMENNETZWERKS mit phpmyadmin in eine tabelle eingefügt wird!?!?

          Kommentar


          • #6
            Wasn das für eine db? Geht das nicht direkt? Hat euer Firmennetzwerk eine feste Internet-IP?

            Kommentar


            • #7
              das ist eine db eines PPS (Produktionsplanungs -und Steuerungssystems)!
              "PRODIS"

              natürlich nicht die ganze datenbank, sondern nur einen teil einer tabelle (2 Spalten)!! (maschinennummer und maschinenbezeichnung)

              nee, das Intranet hat keine feste Internet-IP!

              Ich hab mir nun gedacht dass ich die datei update.csv entweder direkt aus "PROSIS" per FTP auf den Webserver lade, oder eben die datei per cronjob von unserer Firmen-Unix auf den Webspace lade.

              Lässt sich dann auf dem webserver ein cronjob einrichten, der von mir aus jede Woche die datei update.csv in eine sql-tabelle importiert!?

              Per php-script, oder wie!??

              Kommentar


              • #8
                Jau. Mit FTP- und mySQL-Funktionen ist das hinzukriegen. (Einfach das CSV-Importstatement von phpMyAdmin im Skript selbst ausführen.) Es ist halt ein bisschen so ne Sache mit der Sicherheit, vor allem wenn es so intime Daten sind. Da wär es wunderschön, eine feste IP zu haben, auf die man den Zugriff beschränken kann.

                Eine Lösung mit einer Lücke weniger wäre:
                - CSV-Datei alle x Stunden per FTP hochladen
                - Skript *auf Server* wird per cron alle x Stunden+10 Minuten ausgeführt, schaut nach neuer CSV-Datei, spielt sie ein. Oder das Skript wird mit fopen() vom Firmennetzwerk aus angestossen.

                Kommentar


                • #9
                  ich hab jetzt mal eine *.csv-datei (die lieft lokal auf meinem Rechner) per phpmyadmin in meine tabelle (auf dem webserver) eingefügt!
                  das ganze funktioniert wunderbar!!

                  bin jetzt daran, das ganze von einem php-script ausführen zu lassen!

                  hab mir mal den php-code von dem load-date statement von phpmyadmin ausgeben lassen:

                  PHP-Code:
                  $sql 'LOAD DATA LOCAL INFILE \'/tmp/phpIAEv9w\' INTO TABLE `maschinen` FIELDS TERMINATED BY \';\' ENCLOSED BY \'"\' ESCAPED BY \'\\\\\' LINES TERMINATED BY \'\\r\\n\''
                  dann hab ich mir mal ein php-script gebastelt und den pfad der datei "maschinen.csv geändert:

                  PHP-Code:

                  <?php

                  include("config.php");


                  $db mysql_connect("localhost""root""");
                  mysql_select_db("wp_project",$db);

                  // Request info
                  $sql 'LOAD DATA LOCAL INFILE \'/html/maschinen.csv\' INTO TABLE `maschinen` FIELDS TERMINATED BY \';\' ENCLOSED BY \'"\' ESCAPED BY \'\\\\\' LINES TERMINATED BY \'\\r\\n\''
                  $result mysql_query($sql);

                  if (!
                  $result) {
                  echo(
                  "<P>Error performing query: " .
                  mysql_error() . "</P>");
                  exit();
                  }
                  ?>
                  nun bekomm ich beim ausführen immer folgende fehlermeldung:

                  Error performing query: File '/html/maschinen.csv' not found (Errcode: 2)

                  die datei maschinen.csv liegt jedoch im verzeichnis /html/!!?

                  hab auch mal das LOCAL bei LOAD DATA weggelassen, dann meckert er folgendes:

                  Error performing query: Access denied for user: 'web28@localhost' (Using password: YES)


                  kann jemand meinen fehler erkennen!? ...ich selbst nicht!

                  Kommentar


                  • #10
                    verstehe nicht, warum der access fehler als letztes kommt.

                    beseite doch zuersteinmal die anderen fehler

                    infile versuchst du mal mit nem absoulten pfad zu beheben.

                    Kommentar


                    • #11
                      so, jetzt versteh ich gar nichts mehr!

                      jetzt hab ich mal meine gedanken geordnet und das ganze nochmal neu probiert:

                      hab jetzt folgenden Code:

                      PHP-Code:
                      <?php

                       
                      include("config.php");


                      $link mysql_connect ("$host""$user""$password") or die(mysql_error());
                      if (!
                      $link) die("Kann den Server nicht erreichen.");
                      if (!
                      mysql_select_db("$db"$link))
                           {
                           echo
                      "Kann die Datenbank nicht anwählen.";
                           }
                               else
                                    {
                                     echo
                      "";
                                    }

                      //bis hier her hab ich das skript von einem anderen php-skript kopiert, wo es auch funktioniert!

                      $sql 'LOAD DATA INFILE \'/home/www/web28/html/maschinen.csv\' INTO 
                      TABLE `maschinen` FIELDS TERMINATED BY \';\' ENCLOSED BY \'"\' 
                      ESCAPED BY \'\\\\\' LINES TERMINATED BY \'\\r\\n\''



                      // Request info
                      $result mysql_query($sql);
                      if (!
                      $result) {
                      echo(
                      "<P>Error performing query: " .
                      mysql_error() . "</P>");
                      exit();
                      }

                      ?>
                      das mit dem absoluten pfad, meintest du das so wie ich es gemacht habe!?

                      hab mir mal das Document_Root ausgeben lassen: /home/www/web28/

                      hab ich das richtig!?
                      ich denk nicht, jedenfalls bekomm ich folgende meldung:

                      Error performing query: Access denied for user: 'web28@localhost' (Using password: YES)

                      liegt das jetzt daran, dass ich kein db_connect kriege?!

                      oder stimmt was mit der mysql_query($sql) nicht!?

                      hab auch was von file-privileges im forum gelesen!
                      kann da evtl. das problem liegen!??

                      Kommentar


                      • #12
                        Hi @ all!

                        wo kann ich evtl. hilfe zu meinem problem bekommen!?

                        Gruß

                        karibikjoe

                        Kommentar


                        • #13
                          würde spontan sagen, dass die db keine erlaubnis für das file hat.

                          kannst ja mal nen normalen select von der db machen. wenn der fehler dann weg ist, weißt du es.

                          Kommentar


                          • #14
                            hi TobiaZ!


                            klar, eine normale select-anfrage funktioniert ohne weiteres!

                            meinst du mit 'erlaubnis für das file', dass mir für meinen sql-user die
                            FILE-PRIVILEGES fehlen!?

                            was ich nicht verstehe:

                            wieso kann ich mit Hilfe von phpmyadmin csv-dateien in die datenbank importieren, wenn ich jedoch das ganze in einem php-script ausführe funktioniert es nicht mehr, weil mir die rechte fehlen!?

                            das ist doch der selbe user wie wenn ich unter Confixx phpmyadmin starte!? und dort hab ich ja scheinbar die rechte!?

                            was ich ich nun machen!?
                            Hoster anrufen und fragen ob er mir die file privilieges gibt!?

                            *verzweifel*

                            mfg

                            karibikjoe

                            Kommentar

                            Lädt...
                            X