otto1699
Goto Top

Import mysql aus txt Datei - bestimmte Zelle

Hi,

ich habe mehrere txt Dateien aus der ich Daten in mysql importieren möchte.

Wie komme ich an Werte die in einer bestimmten Zeile und Spalte mit einer max Zeichenlänge stehen.

Beispiel:
Feld Nummer1: Zeile3, Spalte 77, AnzahlZeichen 7
Feld Datum: Zeile5, Spalte 75, AnzahlZeichen 10 (DD.MM.JJJJ)
Feld Nummer2: Zeile10, Spalte 30, AnzahlZeichen 8
Feld Text1: Zeile12, Spalte 1, AnzahlZeichen 17, max AnzahlZeichen 25


Kann mir einer eine Vorlage geben wie ich das mit php anstelle

Danke

Content-ID: 5107962218

Url: https://administrator.de/forum/import-mysql-aus-txt-datei-bestimmte-zelle-5107962218.html

Ausgedruckt am: 23.12.2024 um 16:12 Uhr

it-frosch
it-frosch 27.12.2022 um 11:22:58 Uhr
Goto Top
Hallo Otto1699,

warum willst du den Weg über PHP gehen?

Schau mal hier wenn du es auch direkt an der Konsole machen würdest.

Grüße vom it-frosch
Otto1699
Otto1699 27.12.2022 um 11:28:14 Uhr
Goto Top
Hallo it-frosch,

warum willst du den Weg über PHP gehen?

weil es kein einmaliger Import werden soll, neue Dateien sollen alle 5min importiert werden ;)

LG Otto
Otto1699
Otto1699 27.12.2022 um 12:00:21 Uhr
Goto Top
Hallo,

warum willst du den Weg über PHP gehen?

weil es kein einmaliger Import werden soll, neue Dateien sollen alle 5min importiert werden ;)

geht natürlich auch über ein bash file mit
mysql -e LOAD DATA LOCAL INFILE 

Aber ich stehe auf dem Schlauch, wie ich den Wert aus Zeile3, Spalte 77 bekomme.
4863114660
4863114660 27.12.2022 aktualisiert um 12:43:00 Uhr
Goto Top
Zitat von @Otto1699:
Wie komme ich an Werte die in einer bestimmten Zeile und Spalte mit einer max Zeichenlänge stehen.
Da keinerlei Informationen zur Textdatei vorliegen ... Bsp
https://tio.run/##K8go@P/fxr4go4BLJTk/ryQ1r0TBVsHGxsbV340rKjUzJ1XBUAHKMF ...

file — Reads entire file into an array
substr — Return part of a string

Wenns ne CSV Datei ist arbeitet man natürlich anders, da kannst du mit Split oder explode arbeiten um an die Spaltenwerte zu kommen aber dazu verlierst du hier ja leider kein Wort, so dass man wieder mal nur die Glaskugel zücken kann ...

https://tio.run/##jY9BC4IwGIbv@xVDPCSUsu24lZdmCaJQhw4RY@hCQXTkAv/9WrkO3f ...

explode — Teilt eine Zeichenkette anhand einer Zeichenkette

Gruß s.
it-frosch
it-frosch 27.12.2022 aktualisiert um 14:01:37 Uhr
Goto Top
Hallo Otto,

ich würde eine Hilftabelle für den Import anlegen, in die du die komplette Datei einliest.
Anschließend verwendest du nur die Felder die du wirklich brauchst.
Dafür wird es Bedingungen geben außer "Spalte 77 und Zeile 3". Diese Bedinungen verwendest du beim Filtern der Daten mittels Select.

Wie komme ich an Werte die in einer bestimmten Zeile und Spalte mit einer max Zeichenlänge stehen.
Erkläre bitte noch einmal narrensicher, was du mit diesem Satz sagen willst. Ich habe es nicht verstanden. face-wink

Grüße vom it-frosch
ukulele-7
ukulele-7 27.12.2022 um 14:25:23 Uhr
Goto Top
Keine Ahnung was man sich dazu mit PHP zurecht frickeln kann aber beim Import von tabellarischen Daten aus Dateien in einen SQL Server (egal welcher) wird eigentlich immer die gesamte Tabelle importiert und danach erst die Daten wie auch immer weiter verarbeitet. Wenn du also eine Untermenge an Zeilen brauchst würde ich auch erst in eine temporäre Tabelle schreiben und diese im Anschluss droppen.
Otto1699
Otto1699 27.12.2022 um 16:07:26 Uhr
Goto Top
Hi,

ich habe die Datei zum bessern Verständnis hochgeladen:
https://pst.klgrth.io/paste/y6pnc

Es ist keine CSV, sondern eine Art Formular wo die Daten an einer bestimmten Stelle stehen (Zeile/Spalte). Es sind keine Feldtrenner vorhanden.
4863114660
Lösung 4863114660 27.12.2022 aktualisiert um 16:37:46 Uhr
Goto Top
Zitat von @Otto1699:
Es ist keine CSV, sondern eine Art Formular wo die Daten an einer bestimmten Stelle stehen (Zeile/Spalte). Es sind keine Feldtrenner vorhanden.

Hättest du oben einfach nur die Indizes anpassen müssen
https://tio.run/##pZLRToMwFIbv@xQnyy5mMhh0bmQMXUyESYIsmUYvjCHAijTBQtpilr ...
Ich würde hier aber lieber mit Regular Expressions arbeiten das ist bei sowas zuverlässiger.
https://tio.run/##pZJPa8JAEMXv@ykGycFSzZ@1thjTSqHRCjaCLe3BSohxYhbiZtlsiv ...
https://tio.run/##pZJLb4JAFIX38ytuCAuoOsBY24i0pElfi9YmpulGjEEYZBJeGYbG@O ...

preg_match — Führt eine Suche mit einem regulären Ausdruck durch