Hallo an alle,
ich bräuchte mal wieder Eure Hilfe und zwar habe ich eine Adabas- Datenbank auf Linux und soll jetzt eine CSV-Datei in diese einlesen.
Nun zu meinem Problem.Ich habe das mit folgendem Code realisiert:
<?php $row = 1; // Anzahl der Arrays $handle = fopen ("Lieferung.csv","r"); // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 100000, ";")) !== FALSE ) { // Daten werden aus der Datei
// in ein Array $data gelesen
$ort="gels"; // gels hinzufügen
$num = count ($data); // Felder im Array $data
// werden gezählt
echo "
$num fields in line $row:
\n";
$row++; // Anzahl der Arrays wird
// inkrementiert
for ($c=0; $c \n";
// des Arrays auszugeben
}
}
fclose ($handle);
?\>
Nun bekomme ich trotz allem keine Ausgabe und weiss nicht woran das liegt. Zur näheren Erläuterung: Ich wollte erst mal sehen ob die Datei korrekt eingelesen wird, deshalb der Versuch der Ausgabe.Kann das eventuell auch daran liegen, dass die Einträge (im Moment noch 100000 und steigend) für ein Array zu gross sind oder wie kann ich das anstellen, dass die Datei sofort in die Datenbank eingelesen wird
Vielen Dank schon im vorraus
Heike
Hallo munichfreak,
danke für Deine schnelle Antwort, aber es funzt bei mir leider nicht.
bin schon ein wenig am verzweifeln
Ich glaube es liegt eher am Aufruf als an der Ausgabe könntest Du Dir diese vielleicht noch mal ansehen?
Heike
also bei mir funktioniert auch Dein code
(sogar das teilen mit fgetcsv, obwohl ich ja eher explode() nehmen würde, aber ich hatte bisher auch noch nix mit csv zu tun )
sicher dass er die Datei auch finden kann?
file_exists ist ein braves Pferd
<?php error_reporting(E_ALL);<br />$row = 1; // Anzahl der Arrays
$handle = fopen ("Lieferung.csv","r") or die("Kann Datei nicht öffnen");
// Wirklich mit grossem "L" ?
while ( ($data = fgetcsv ($handle, 100000, ";")) !== FALSE ) {
$ort="gels"; // gels hinzufügen // wozu, das wird nie wieder abgefragt ?
$num = count ($data); // Felder im Array $data
echo "
$num fields in line $row:
\n";
$row++; // Anzahl der Arrays wird
for ($c=0; $c \n";
// des Arrays auszugeben
} // for
} // while
fclose ($handle);
?\>
Nun bekomme ich trotz allem keine Ausgabe und weiss nicht
woran das liegt. Zur näheren Erläuterung: Ich wollte erst mal
Entweder die Datei ist leer, oder wird nicht gefunden. Dank error_reporting sollte jetzt aber eine Meldung kommen.
habe wahrscheinlich einen elementaren Fehler
ich bearbeite die Date mit phase5 Editor und der gibt mir gar nichts aus beim umschalten in die Browservorschau
hast du da vielleicht einen Tip
Danke übrigens für Deine schnelle Hilfe
Heike
der editor ist dabei egal
es ist ja php-code, muss also in und ?> stehen… (daran gedacht?)
Eine Vorschau kann bei php eigentlich nicht funktionieren…
Du musst nur erst mal sichergehen dass
* Die Datei im gleichen Verzeichnis liegt
* Die GrOsS-kleinschreibung exakt identisch ist
* Die aufrufende Datei leserechte hat
* Das Script die Datei auch findet… Und das eben lässt sich mit diesem eben genannten miniscript überprüfen. Setz es einfach mal an den Anfang Deines PHP-Codes in Deinem Script… Vllt ist auch das Problem, dass Du das PHP-Script nicht ausgeführt hast, sondern es auch nur in der Vorschau des Editors angesehen hast?
Wenn du mir jetzt noch sagen kannst wie die Ausführung geht wäre ich dir ewig dankbar
Allerdings kann ich das erst morgen probieren da ich jetzt Feierabend habe
lass sie auf dem Webserver laufen…
Bedingungen: Endung auf .php
installierter webserver mit eingeflochtenem php-Modul…
php ist eine Serverseitige Scriptsprache. Ohne einen Server auf dem es ausgeführt wird bekommt man _nie_ resultate…
Emulatoren kenne ich jedenfalls nicht, wozu auch? schliesslich kann man sich auf jedem Rechner nen Webserver mit Apache installieren…
Hallo meine Retter,
es klappt. Wenn ich Euch jetzt das Problem sage werdet Ihr Euch bestimmt an den Kopf fassen.Es war schlicht und einfach der Programmaufruf.Ich habe doch die Datei tatsächlich .html genannt anstatt .php. Trotzdem habt Ihr beide mir wieder ein wenig mehr Verständnis beigebracht was PHP-Programmierung angeht
Also vielen Dank nochmal
Heike