Einen schönen Abend zusammen!
Ich möchte gleich gerne auf den Punkt kommen. Ich versuche gerade, Geodaten, die mir als CSV-Daten vorliegen in eine DB zu klopfen. Dafür habe die CSV erstmal in ein Array geschrieben. Dieses mehrdimensionale Array habe ich dann um die nicht benötigten Daten gekürzt, so dass am Ende noch ein Array in der passenden Form (Ort, PLZ, LON, LAT) übrig bleibt. Nun zu den Schwierigkeiten:
Ich verwende folgende Schleife um die Daten aus dem Array in die DB zu schicken:
Das klappt auch solange ich als Schleifenbedingung keine zu großen Durchläufe veranstalte. Bei 100 Durchgängen macht das Script alles super, auch bei 1000 kein Problem, bei 10000 und mehr kommt dann auf einmal eine Notice in dieser Form:
Notice: Undefined offset: 0 in C:\xampp\htdocs\geo_csv_in_db.php on line 68
Notice: Undefined offset: 1 in C:\xampp\htdocs\geo_csv_in_db.php on line 69
Notice: Undefined offset: 2 in C:\xampp\htdocs\geo_csv_in_db.php on line 70
Notice: Undefined offset: 3 in C:\xampp\htdocs\geo_csv_in_db.php on line 71
Das sind genau diese Zeilen, in denen ich den Variablen Werte aus dem Array zuweise. Woran kann das liegen, wenn ich mit den Durchläufen hoch gehe? Am Ende müssen es nicht ganz 70k sein, bis ich alle Geodaten in der DB hab.
Dann dachte ich, es liegt an meiner php.ini. Hier wollte ich nun die execution-time hochstellen, aber die Änderung macht sich auch nach einem Xampp-Neustart nicht bemerkbar, obwohl die Änderung abgespeichert und in der php.ini auch geändert ist.
Ich hoffe, ihr habt da ein paar Denkanstöße für mich.
Merci und Grüße
Michael
Ich möchte gleich gerne auf den Punkt kommen. Ich versuche gerade, Geodaten, die mir als CSV-Daten vorliegen in eine DB zu klopfen. Dafür habe die CSV erstmal in ein Array geschrieben. Dieses mehrdimensionale Array habe ich dann um die nicht benötigten Daten gekürzt, so dass am Ende noch ein Array in der passenden Form (Ort, PLZ, LON, LAT) übrig bleibt. Nun zu den Schwierigkeiten:
Ich verwende folgende Schleife um die Daten aus dem Array in die DB zu schicken:
PHP-Code:
for ($index = 0; $index < $elemente; $index++)
{
$ort = $geo_passend[$index][0];
$lat = $geo_passend[$index][1];
$lon = $geo_passend[$index][2];
$plz = $geo_passend[$index][3];
$sql = "INSERT INTO geo_data (ORT, LAT, LON, PLZ) VALUES ('$ort', '$lat', '$lon', '$plz')";
$result = mysqli_query($verbindung, $sql);
$anzahl = $anzahl + mysqli_affected_rows($verbindung);
Notice: Undefined offset: 0 in C:\xampp\htdocs\geo_csv_in_db.php on line 68
Notice: Undefined offset: 1 in C:\xampp\htdocs\geo_csv_in_db.php on line 69
Notice: Undefined offset: 2 in C:\xampp\htdocs\geo_csv_in_db.php on line 70
Notice: Undefined offset: 3 in C:\xampp\htdocs\geo_csv_in_db.php on line 71
Das sind genau diese Zeilen, in denen ich den Variablen Werte aus dem Array zuweise. Woran kann das liegen, wenn ich mit den Durchläufen hoch gehe? Am Ende müssen es nicht ganz 70k sein, bis ich alle Geodaten in der DB hab.
Dann dachte ich, es liegt an meiner php.ini. Hier wollte ich nun die execution-time hochstellen, aber die Änderung macht sich auch nach einem Xampp-Neustart nicht bemerkbar, obwohl die Änderung abgespeichert und in der php.ini auch geändert ist.
Ich hoffe, ihr habt da ein paar Denkanstöße für mich.
Merci und Grüße
Michael
Kommentar