Hallo zusammen,
Ich habe folgende Aufgabenstellung:
Ein Quell-Programm gibt Grafikdaten, z.B. Position und Größe von Elementen in einer Tabellen aus. Leider als txt-Datei. Diese txt konvertiere ich über EXCEL in eine csv und lade diese dann über ein php skript hoch.
"LOAD DATA LOCAL INFILE '20101000.csv' REPLACE INTO TABLE tabelle FIELDS TERMINATES BY ';' ";
Einige Felder sind reine Zahlen, also Integer, die auch problemlos in die Zieltabelle übertragen werden, weil EXCEL die auch als Zahl umgewandelt hat. Die Felder dort sind als INT definiert.
Nun will ich den Weg über EXCEL endlich vermeiden und die txt, die in Tabellenform mit Tabs getrennt vorliegt, direkt einlesen. Hierzu habe ich das Skript wie folgt verändert:
"LOAD DATA LOCAL INFILE '20101000.txt' REPLACE INTO TABLE tabelle FIELDS TERMINATES BY '\t' ";
funktioniert grundsätzlich, wenn ich in der Zieltabelle alle Felder als VARCHAR definiere, weil die Zahlen aus der txt-Datei offensichtlich als String interpretiert werden. Leider kann ich nun mit den so übertragenen "Zahlen" nicht arbeiten. Jegliche Versuche scheitern bislang, die Zahlen im Stringformat auszulesen und in INT zu konvertieren.
z.B. in der Spalte ID steht als String die Zahl 3778.
Ich lese sie aus $id = $row["ID"]
und versuche sie in INT zu konvertieren: $id_conv = (int) $id; oder $id_conv = intval($id);
Beides schlägt fehl, ebenso der Versuch, die Variable $id_conv in eine andere Tabelle mit dem Feld ID (INT) einzulesen, es kommt 0 heraus.
Ideal wäre, wenn ich bereits bei Auslesen der Daten die in der txt verankerten Zahlen auch als Zahl auslesen könnte, keine Ahnung wie das gehen kann.
Hat jemand aus dem Forum eine Idee, wie ich direkt oder über eine Konvertrierung die Zahlen als INT-Zahl erhalten kann?
Besten Dank
Grüße
Mike
Ich habe folgende Aufgabenstellung:
Ein Quell-Programm gibt Grafikdaten, z.B. Position und Größe von Elementen in einer Tabellen aus. Leider als txt-Datei. Diese txt konvertiere ich über EXCEL in eine csv und lade diese dann über ein php skript hoch.
"LOAD DATA LOCAL INFILE '20101000.csv' REPLACE INTO TABLE tabelle FIELDS TERMINATES BY ';' ";
Einige Felder sind reine Zahlen, also Integer, die auch problemlos in die Zieltabelle übertragen werden, weil EXCEL die auch als Zahl umgewandelt hat. Die Felder dort sind als INT definiert.
Nun will ich den Weg über EXCEL endlich vermeiden und die txt, die in Tabellenform mit Tabs getrennt vorliegt, direkt einlesen. Hierzu habe ich das Skript wie folgt verändert:
"LOAD DATA LOCAL INFILE '20101000.txt' REPLACE INTO TABLE tabelle FIELDS TERMINATES BY '\t' ";
funktioniert grundsätzlich, wenn ich in der Zieltabelle alle Felder als VARCHAR definiere, weil die Zahlen aus der txt-Datei offensichtlich als String interpretiert werden. Leider kann ich nun mit den so übertragenen "Zahlen" nicht arbeiten. Jegliche Versuche scheitern bislang, die Zahlen im Stringformat auszulesen und in INT zu konvertieren.
z.B. in der Spalte ID steht als String die Zahl 3778.
Ich lese sie aus $id = $row["ID"]
und versuche sie in INT zu konvertieren: $id_conv = (int) $id; oder $id_conv = intval($id);
Beides schlägt fehl, ebenso der Versuch, die Variable $id_conv in eine andere Tabelle mit dem Feld ID (INT) einzulesen, es kommt 0 heraus.
Ideal wäre, wenn ich bereits bei Auslesen der Daten die in der txt verankerten Zahlen auch als Zahl auslesen könnte, keine Ahnung wie das gehen kann.
Hat jemand aus dem Forum eine Idee, wie ich direkt oder über eine Konvertrierung die Zahlen als INT-Zahl erhalten kann?
Besten Dank
Grüße
Mike
Kommentar