Ankündigung

Einklappen
Keine Ankündigung bisher.

CSV in mySQL importieren (Summe, Min, Max, Schnitt)

Einklappen

Neue Werbung 2019

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

  • CSV in mySQL importieren (Summe, Min, Max, Schnitt)

    Hallo,

    habe mich schon bemüht zu suchen, aber als PHP Laie finde ich mich
    im Moment nicht zurecht.

    Ich weiß das es geht, aber nicht wie.

    Ich habe auf meinem Webserver täglich eine CSV Datei, die diverse Werte hat. Die Datei archiv-20140924.csv zb ist in den ersten Zeilen so aufgebaut:

    Code:
    Datum,Zeit,Temp. Aussen,Hum. Aussen,Pressure,Regen,Wind,Wind Direction,Wind Gust
    ,,°C,%,hPa,l/qm,km/h,°,km/h
    #Calibrate=1.000 #Regen0=0mm #Location=10/10m #Baro_correction=0hPa #Station=meteohub
    ,,2,18,33,34,35,36,45,133
    23.09.2014,00:00,12.6,72.0,1017.6,0.00,2.2,225,0.0,1018.8
    23.09.2014,00:01,12.6,72.0,1017.6,0.00,2.2,225,0.0,1018.8
    23.09.2014,00:02,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:03,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:04,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:05,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:06,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:07,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:08,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:09,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:10,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:11,12.6,72.0,1017.6,0.00,1.8,338,5.0,1018.8
    23.09.2014,00:12,12.5,73.0,1017.6,0.00,1.8,293,2.2,1018.8
    .....
    usw
    Die CSV enthält Daten einer Wetterstation, die minütlich erstellt werden.

    Ich möchte aus diesem Datensatz nun aus den Spalten Min, Max, Schnitt oder Summe in eine mySQL Tabelle schreiben, weiß aber nicht wie genau.

    Die CSV hat 10 Spalten mit Daten.

    CSV: Spalte 1 -> mySQL: Spalte 1
    CSV: Min Spalte 3 -> mySQL: Spalte 2
    CSV: Max Spalte 3 -> mySQL: Spalte 3
    CSV: Schnitt Spalte 3 -> mySQL: Spalte 4
    CSV: Min Spalte 4 -> mySQL: Spalte 5
    CSV: Max Spalte 4 -> mySQL: Spalte 6
    CSV: Schnitt Spalte 4 -> mySQL: Spalte 7
    CSV: Min Spalte 5 -> mySQL: Spalte 8
    CSV: Max Spalte 5 -> mySQL: Spalte 9
    CSV: Schnitt Spalte 5 -> mySQL: Spalte 10
    CSV: Summe Spalte 6 -> mySQL: Spalte 11
    CSV: Min Spalte 7 -> mySQL: Spalte 12
    CSV: Max Spalte 7 -> mySQL: Spalte 13
    CSV: Schnitt Spalte 7 -> mySQL: Spalte 14
    CSV: Min Spalte 8 -> mySQL: Spalte 15
    CSV: Max Spalte 8 -> mySQL: Spalte 16
    CSV: Schnitt Spalte 8 -> mySQL: Spalte 17
    CSV: Min Spalte 9 -> mySQL: Spalte 18
    CSV: Max Spalte 9 -> mySQL: Spalte 19
    CSV: Schnitt Spalte 9 -> mySQL: Spalte 20

    Danke für jede Hilfe.

    Gruss


  • #2
    Hab hier mal ein überschaubares Tutorial dazu gefunden: CSV-File direkt in MySQL importieren. War übrigens zweiter Treffer bei Googlesuche.

    Kommentar


    • #3
      Danke, hatte ich aber gefunden. Aber dort wird nicht erklärt, wie

      - die ersten Zeilen ignoriert werden
      - ich aus den Spalten der CSV Min/Max/Summe/Schnitt ermittelt

      Ich brauche in der MySQL ja immer nur einen Wert, zb Max aus
      aus einer Spalte der csv

      Kommentar


      • #4
        Dafür gibt es das MySQL-Manual?
        GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

        Kommentar


        • #5
          Die CSV hat 10 Spalten mit Daten.

          CSV: Spalte 1 -> mySQL: Spalte 1
          CSV: Min Spalte 3 -> mySQL: Spalte 2
          CSV: Max Spalte 3 -> mySQL: Spalte 3
          CSV: Schnitt Spalte 3 -> mySQL: Spalte 4
          CSV: Min Spalte 4 -> mySQL: Spalte 5
          CSV: Max Spalte 4 -> mySQL: Spalte 6
          CSV: Schnitt Spalte 4 -> mySQL: Spalte 7
          CSV: Min Spalte 5 -> mySQL: Spalte 8
          CSV: Max Spalte 5 -> mySQL: Spalte 9
          CSV: Schnitt Spalte 5 -> mySQL: Spalte 10
          CSV: Summe Spalte 6 -> mySQL: Spalte 11
          CSV: Min Spalte 7 -> mySQL: Spalte 12
          CSV: Max Spalte 7 -> mySQL: Spalte 13
          CSV: Schnitt Spalte 7 -> mySQL: Spalte 14
          CSV: Min Spalte 8 -> mySQL: Spalte 15
          CSV: Max Spalte 8 -> mySQL: Spalte 16
          CSV: Schnitt Spalte 8 -> mySQL: Spalte 17
          CSV: Min Spalte 9 -> mySQL: Spalte 18
          CSV: Max Spalte 9 -> mySQL: Spalte 19
          CSV: Schnitt Spalte 9 -> mySQL: Spalte 20
          - ich aus den Spalten der CSV Min/Max/Summe/Schnitt ermittelt

          Ich brauche in der MySQL ja immer nur einen Wert, zb Max aus
          aus einer Spalte der csv
          D.h. du willst von der CSV immer nur einen kleinen Teil in deine DB geben, den du dann auch direkt in diesem Zuge erst errechnen musst?

          Ev macht es dann mehr Sinn, immer alle Daten vom CSV in die DB zu schmeissen (je nachdem sonst ev. in eine eigene Tabelle) und dann direkt aus der DB auszuwerten, weiterzuverarbeiten, etc..
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Aah jetzt versteh ich was du meinst. Du willst die Tages Min-/Max-/Durchnittswerte ermitteln?! Kannst mit php die CSV zeilenweise einlesen, die Werte berrechnen und dann in die DB schreiben.

            Kleine Anleitung zum Vorgehen:
            1. Datei öffnen: fopen()
            2. Zeile für Zeile auslesen: fgetcsv()
            3. Werte Berrechnen
            4. Werte in DB Speichern: Mysqli oder PDO

            Allerdings
            als PHP Laie
            ... kann das aber schon etwas anspruchsvoll werden

            Kommentar

            Lädt...
            X