Datei auf Server in MySQL DB einlesen

exitboy

Erfahrenes Mitglied
Hallo,

ich habe eine Datei im txt Format, welche aus Excel exportiert worden ist.

Aufgebaut ist diese wie folgt:

Stadt.;Bewohner.;Ausgaben.:
1;200;10000;
1;300;200;
2;303;500;

...

usw. ...
alle Daten sind durch ein ";" getrennt.

Diese Daten sollen in eigene Spalten (über die erste Angabe 1, 2) --> welche hier als Stadt dienen.

Da es rund 100 Städte sind, würde ich hier gern für jede Stadt eigene Tabellen erstellen, also demnach 100. Darunter kommen über Inserts die Daten.

Nun meine Frage ... wie realisiere ich das ... dass er genau erkennt, dass nach einem; ein Datenfeld beendet ist und ... wie erkennt man dass es sich noch auf die jeweilige Stadt bezieht. Nach einer Stadt soll ja die nächste Tabelle angesprochen werden.

Hat jemand eine Lösung? Existiert so etwas evtl. schon? Gibt es hier ein tut?
 
wen es Interessiert, ich habe das jetzt wie folgt erfolgreich selber gelöst:

$fp = file("uploaded.txt");

foreach ($fp as $value)

{
list ($stadt, $einwohner, $umsatz) = split ('[;]', $value);
echo "Stadt $stadt; Einwohner $einwohner, Umsatz $umsatz<br />\n";
}
 
Nur so als Anmerkung:

für jede Stadt eine eigene Tabelle anzulegen halte ich für ungünstig, insbesondere dann, wenn pro Tabelle nur wenige Datensätze gespeichert werden (ich rede hier von weniger als 10 Millionen pro Tabelle). Vermutlich wirst du in Zukunft damit Probleme bekommen, weil du gegebenenfalls 100 Tabellen abfragen musst, obwohl MySQL so etwas locker mit einer Tabelle bewältigen kann.

Beispiel: Du willst alle Städte herausfinden, bei denen Einträge mit mehr als 100 Einwohnern existieren.

Überleg dir lieber vorher, ob das Tabellen-Design wirklich sinnvoll für deine Anwendung ist (könnte ja sein, wäre aber ungewöhnlich).

Gruß

Marian
 
Zurück