Michael S: XLS via Script importieren

Hallo Ihr da draussen :)

Ich habe folgendes Problem.

Erhalte von meinem Hauptlieferanten, dessen Preisliste als XLS-Datei.

Diese Datei soll 1:1 in die MYSQL Datenbank übernommen werden.

Nun habe ich nichts in den schlauen Büchern gefunden, wie ich dies bewerkstellige.

Mein Gedankengang:

File downloaden (XLS)
Per Excel als CSV speichern
per PhpMyAdmin in die Datenbank importieren

  • Hier wieder ein Problem, er soll die Daten aktualisieren wenn notwendig bzw. neue Produkte neu anlegen. Reicht hier der UPDATE Befehl oder muss ich dies mit einer IF-Schleife lösen ?

  • Wie kann ich mir hier arbeitsschritte ersparen ?

Gewünscht wäre, das das Script Serverseitig nach Vorgabe zb. täglich 00:00 eine neue Liste ladet und den ganzen Updatevorgang alleine macht.

---------------------------------------------------------------------------

Die nächste Sache ist, das ich zum einen immer die aktuellen Preise möchte aber auch durch ein Chart einen Preisverlauf haben möchte.

Soll ich hierzu immer die Upgedateten Elemente in eine andere Tabelle kopieren lassen sowie auch neue da anlegen oder wie kann ich das lösen ?

Ich bitte um Hilfe !!!

Meine Private Mailadresse ist chatliner2002@gmx.at, wenn ein Pfiffiger Entwickler Lust, Laune und Zeit hat mir bei der Sache generell unter die Arme zu greifen, so bitte hier melden. Natürlich nicht kostenlos !!

mfg

Michael S.

  1. Moin

    Erstmal ne allgemeine Frage: Hast du PHP zur Verfügung? Darüber wäre die Lösung einfach umzusetzen

    Mein Gedankengang:

    File downloaden (XLS)
    Per Excel als CSV speichern
    per PhpMyAdmin in die Datenbank importieren

    Nicht schlecht der Gedankengang (Bis auf PhpMyAdmin)

    • Hier wieder ein Problem, er soll die Daten aktualisieren wenn notwendig bzw. neue Produkte neu anlegen. Reicht hier der UPDATE Befehl oder muss ich dies mit einer IF-Schleife lösen ?

    Hier wäre eben PHP angebracht. Da gibt es vorgefrtigte Funktionen zum auslesen der CSV und ordentlichem Verarbeiten.

    • Wie kann ich mir hier arbeitsschritte ersparen ?

    Mit einem Script, der dies automatisiert.

    Gewünscht wäre, das das Script Serverseitig nach Vorgabe zb. täglich 00:00

    Da hilf dir das Stichwort "Cronjob" weiter. Beschäftige dich damit

    ---------------------------------------------------------------------------

    Die nächste Sache ist, das ich zum einen immer die aktuellen Preise möchte aber auch durch ein Chart einen Preisverlauf haben möchte.
    Soll ich hierzu immer die Upgedateten Elemente in eine andere Tabelle kopieren lassen sowie auch neue da anlegen oder wie kann ich das lösen ?

    Da wäre ein DB-Feld mit einem Array oder Objekt drin gut. Dies kann im Script wunderbar ausgewertet werden. Da benötigst du keine neue Tabelle

    Ich bitte um Hilfe !!!

    Ich hoffe die Gedankenanstösse waren hilfreich

    Meine Private Mailadresse ist chatliner2002@gmx.at, wenn ein Pfiffiger Entwickler Lust, Laune und Zeit hat mir bei der Sache generell unter die Arme zu greifen, so bitte hier melden. Natürlich nicht kostenlos !!

    meld dich einfach wenn du Hilfe brauchst. eMail-Adresse ist ja sichtbar.

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
    1. Hallo

      Nicht schlecht der Gedankengang (Bis auf PhpMyAdmin)

      bis darauf, dass man Excel direkt auswerten kann und sollte.

      Die nächste Sache ist, das ich zum einen immer die aktuellen Preise möchte aber auch durch ein Chart einen Preisverlauf haben möchte.
      Soll ich hierzu immer die Upgedateten Elemente in eine andere Tabelle kopieren lassen sowie auch neue da anlegen oder wie kann ich das lösen ?

      Da wäre ein DB-Feld mit einem Array oder Objekt drin gut. Dies kann im Script wunderbar ausgewertet werden. Da benötigst du keine neue Tabelle

      eine grausame Idee. Für eine Chart wird natürlich auch das Datum der Preisänderung benötigt. Selbstverständlich ist dafür eine eigene Tabelle ideal und angebracht.

      Freundliche Grüße

      Vinzenz

      1. Moin

        Nicht schlecht der Gedankengang (Bis auf PhpMyAdmin)
        bis darauf, dass man Excel direkt auswerten kann und sollte.

        Aber nur wenn die notwendige Erweiterung (z.B. PHP-ExcelReader) auf dem Server installiert ist. Oder täusche ich mich da????

        eine grausame Idee. Für eine Chart wird natürlich auch das Datum der Preisänderung benötigt.

        Das geht über ein mehrdimensionales Array zu lösen. Man kann natürlich auch eine neue Tabelle schreiben und ständig kreuzreferenzieren. Das finde ich für so eine Lau-Funktion sehr übertrieben

        Gruß Bobby

        --
        -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
        -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
        ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
        1. Hello,

          Das geht über ein mehrdimensionales Array zu lösen. Man kann natürlich auch eine neue Tabelle schreiben und ständig kreuzreferenzieren. Das finde ich für so eine Lau-Funktion sehr übertrieben

          bitte was? Es gilt immer noch "Daten sind beständiger als Funktionen" - man richtet Datenstrukturen nicht nach gewünschten Funktionen aus. Man richtet Daten nach Fachlichkeit aus. Und ein Preistrend ist nunmal eine Menge von Datum-Wert-Paaren. Davon mal abgesehen, dass du dir früher oder später einen dabei abbrichst eine Abfrage wie "Gib mir den Artikel mit seinem Preis vor 4 Monaten" mit EINER DB-Abfrage zu machen...

          MfG
          Rouven

          --
          -------------------
          sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
          Inter Arma Enim Silent Leges  --  Cicero
          1. Moin

            Davon mal abgesehen, dass du dir früher oder später einen dabei abbrichst eine Abfrage wie "Gib mir den Artikel mit seinem Preis vor 4 Monaten" mit EINER DB-Abfrage zu machen...

            OK... solche weiterführenden Funktionen hab ich nicht bedacht. Diese sind m.E. im Moment ne gefordert. Aber natürlich, wenn zukünftig erweitert werden soll, notwendig.

            Gruß Bobby

            --
            -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
            -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
            ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
            1. Hallo und vielen Dank für Eure Antworten !

              Zunächst die Serverkonfiguraton:

              • Es steht zur Verfügung was dafür gebraucht wird.
                  Was nicht vorhanden ist, wir erworben *punkt*

              Chart:

              Der Chart soll und wird recht einfach gehalten sein.

              • Im Artikeldetail (Kunde), grafisch dargestellt, Preisentwicklung seit Aufnahme ins Sortiment.
              • Im Artikelstammdatenelement (Intern), grafisch dargestellt, Einkaufspreisentwicklung.

              Die Einkaufspreise variieren oft mehr als der Verkaufspreis.

              Das Importfile:

              Derzeit konferiere ich mit meinem Hauptlieferanten, wie dieses File aussehen wird, wie oft es als aktualisierte Variante zur Verfügung stehen wird etc. Dementsprechend muss auch das Skript arbeiten können.

              Der gesamt Umfang:

              Dies Skript soll bestandteil eines grossen Handelssystem sein. Für mich wünschenswert als Server-Intranetanwendung, welches per Userlogin seine verschiedenen Elemente darstellt.

              Beinhalten soll die Anwendung neben dem automatisierten Preislistenimport mehrerer Hersteller, auch die passende Bestellabwicklung sowie Rechnungslegung, Servicescheine, Inventurlisten, Lagerstandsliste (Hersteller, Lokal), Lieferscheine, Reservierungen etc.

              Auch werde ich beim Termin meines Distributors nächste Woche nachfragen, ob dieser eine passende Softwarelösung anbietet.

              Lieber wäre es mir jedoch, das Paket massgeschneidert zu haben und dies per Module erweiterungsfähig zu haben.

              Wie gesagt, wenn jemand interesse hat dies zu machen, bin ich nicht abgeneigt dies finanziell abzugelten. Meine PhP / Sql Kenntnisse reichen aus um Browserspiele und div. Webseiten zu erstellen doch weder hab ich die notwendigen Kenntnisse noch wirklich die Zeit dieses Projekt selbst in Angriff zu nehmen.

              Und fertige Softwarelösungen sind bekanntlich sehr teuer bzw. passen so oder so nie wirklich zum eigenen Geschäft bzw. müssen durch noch teurere Fremdprogrammierer umgeschrieben werden.