lousek
Goto Top

Aus .txt zeilenweise mittels PHP in MySQL-Datenbank schreiben

Hallo Forum.

Für ein Schulprojekt haben wir eine Liste mit über 2000 Spielen enthalten, die wir in eine DB schreiben sollen + Genres etc dazuschreiben sollten.

Die ganzen Spiele sind in einer .txt gespeichert ...

Habe es so umgeformt, dass das Format folgendes ist:

Spielname; Spieljahr; Herstellername

Also z.B.:

100000 Pyramid ;1988;Basada

Die Datenbank besteht aus 4 Tabellen, 3 davon sind hier nur relevant:

-->Spiel (spiel_id,spiel_name,spiel_genre,spiel_hersteller,spiel_farbe,spiel_sprache,spiel_jahr)

-->Hersteller (hersteller_id,hersteller_name)

-->Genre (genre_id,genre_name)

sprache (sprache_id,sprache_name)

Wie ich mit PHP Werte aus einer .txt auslese und in eine DB auslese ist mir schon klar, aber wie kann ich die Trennung machen?

Also wie lese ich eine Zeile so aus, dass ich sie z.B. in einem array speichern könnte, etwa so:

while ($zähler <= $zeilen in txt) {
$array['0'] = $erste spalte in .txt (also z.B. 100000 Pyramid);
$array['1'] = $zweite spalte in .txt (also z.B. 1988);
$array['2'] = $dritte spalte in .txt (also z.B. Basada);
$zähler++;
}

Greetz, Lousek

Content-Key: 90224

Url: https://administrator.de/contentid/90224

Printed on: April 25, 2024 at 07:04 o'clock

Member: Arano
Arano Jun 19, 2008 at 18:46:20 (UTC)
Goto Top
Tag,

du suchst nach explode()
<?php
 $spielesammlung_txt=file('spile_db.txt');  
 foreach($spielesammlung_txt as $spiel){
  list($name,$genre,$hersteller)=explode('; ',$spiel);  
  echo 'Name: '.$name;  
  echo 'Genre: '.$genre;  
  echo 'Hersteller: '.$hersteller;  
 }
?>

~Arano

Edit:
Hm...
foreach(file('spile_db.txt') as $spiel){
...könnte auch funktionieren...
Member: Lousek
Lousek Jun 19, 2008 at 19:23:35 (UTC)
Goto Top
Heyyy, danke, genau das was ich brauche face-smile

Nur etwas ist mir nicht ganz klar:

du sagst

foreach($spielesammlung_txt as $spiel) {
...

Wie weiss dieser das er Zeile für Zeile nehmen soll?

Greetz, Lousek
Member: Arano
Arano Jun 20, 2008 at 01:08:32 (UTC)
Goto Top
Daaas ist ganz einfach !
1. s. file()
2. file() liest dir die Datei zeilenweise in ein Array und mit der foreach-Schleife, gehst du dann die Elemente in dem Array einzelnt durch (hier die einzelnen Zeilen der ursprünglichen Datei)

Gruß Arano
Member: Lousek
Lousek Jun 20, 2008 at 07:07:22 (UTC)
Goto Top
Mhm, gut zu wissen face-smile
Bin ja noch N00B :P

Funktioniert alles bestens (auser das ich an jedem Ende der Zeiel auch noch ein ; einfügen musste ... sonst hatte er immer noch einen " " dahinter (Leerschlag))

Greetz und Thx, Lousek