Hallo Hendrik,
Habe das Problem, das ich den Inhalt der Datei immer nur in ein Feld der db-tabelle geschrieben bekomme! müsste das aber aufgeteilt haben! Hier is das skript!
das liegt an der Logik des Skriptes.
> $a_fileContents = file("dat/muh.txt");
# Handelt es sich hierbei um einzelne Einträge,
# 11 Zeilen in der Textdatei ergeben einen Datensatz?
# Eine Erläuterung des Aufbaus der Textdatei wäre sinnvoll.
# Ein kleines Schritt für Schritt-Debug:
> $i=0;
# $i hat den Wert 0
> while($i<count($a_fileContents))
# nehmen wir an, $a_fileContents sei größer 0
# zweite Runde, wir nehmen an der Abbruch sei noch nicht erreicht
> {
> $a_temp[] =$a_fileContents[$i];
# $a_temp[0] = $a_fileContents[0]
# 2. Runde: $a_temp[0] = $a_fileContents[1]
> if($i%11 == 0)
# Prüfung: 0 % 0 hat das Ergebnis 0, daher ist 0 == 0 wahr, gehe in den if-Zweig
# so bestimmt nicht gewollt ;-)
# 2. Runde: 1 % 1 ist 1, 1 == 0 ist falsch, überspringe if-Zweig
> {
> $query = "INSERT INTO schueler ( benutzername, kennwort, vorname, nachname, strasse, plz, ort, foto, berufsbezeichnung, telefon, erziehtelefon)
> VALUES ('".$a_temp[0]."', # da steht was drin
> '".$a_temp[1]."', # die gibt es gar nicht
# Hier solltest Du eine Notice bekommen
> '".$a_temp[2]."', # gibt es auch nicht
> '".$a_temp[3]."', # ...
> '".$a_temp[4]."',
> '".$a_temp[5]."',
> '".$a_temp[6]."',
> '".$a_temp[7]."',
> '".$a_temp[8]."',
> '".$a_temp[9]."',
> '".$a_temp[10]."')";
>
> mysql_query($query) or die(mysql_error());
# Ein gefüllter Wert + 10 Leerstrings werden in die DB eingefügt
> unset($a_temp);
# Wir löschen das Array
> }
> $i++;
# $i hat nun den Wert 1
# 2. Runde $i hat nun den Wert 2 [...]
> }
Ich vermute, Du testest nur mit einem Datensatz. In der zweiten Runde solltest Du einen kompletten Datensatz bekommen, wenn auch nicht mit den von Dir erwarteten Daten.
Es ist eine gute Idee, während der Entwicklung- und Debugphase mit [link:http://www.php.net/manual/de/function.error-reporting.php@title=error_reporting](E_ALL);
Dir alle Fehler, Warnungen und Notices anzeigen zu lassen.
Weiterhin wäre es eine gute Idee, alle INSERTS in einem einzigen Statement durchführen zu lassen, siehe MySQL-Handbuch, INSERT-Syntax. Bei MySQL ist es immer sinnvoll, die verwendete Version anzugeben, da die Fähigkeiten sich von Version zu Version dramatisch unterscheiden können.
Freundliche Grüße
Vinzenz