Zum Inhalt springen

daten von einer textdatei in die datenbank schreiben


azubi-tigerente

Empfohlene Beiträge

Hallo Leute,

möchte Daten aus einer txt-Datei in die Datenbank schreiben lassen.

Die Informationen sind mit ";" getrennt.

Das erste Problem ist das er oft nicht die ganze Datei ausliest. Und er schreibt mir nichts in die Datenbank. mein Script schaut wie folgt aus.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<?php

// Verbindung zum SQL-Server aufbauen....

// Sicherheitsabfrage im Falle eines Fehlschlages

// Verwendung des @-Zeichens werden automatische Fehlermeldung unterlassen

$hostname = "localhost";

$verzeichnis = "root";

$password = "tfgt";

$dbconn = @mysql_connect($hostname,$verzeichnis,$password);

if (!$dbconn){

echo("<p>Verbindung zum Datenbankserver zur Zeit nicht möglich.</p>".mysql_error());

exit();

}

// Datenbank auswählen mit der gearbeitet werden soll

$db_name = "ORGSYS";

if (! @mysql_select_db($db_name)){

echo("<p>Auswahl der ORGSYS-Datenbank zur Zeit nicht möglich.</p>");

exit();

}

?>

<?php

$strFile = 'artikel_daten/kondition_test.txt';

$hdl = fopen($strFile, 'r');

//$strLine = fgets($hdl, 1024);

$z=1;

while($strLine = fgets($hdl)){

$string = explode(';',$strLine);

$arraylaenge = sizeof($string);

echo('<font color="RED">'.$arraylaenge.'</font><br/>');

echo('<font color="BLUE">'.$z.'</font><br/>');

for ($i=0;$i<$arraylaenge;$i++){

if (strlen($string[$i])>0){

echo('<font color="Green">'.$string[$i].'</font>-ENDE-');

switch ($i){

case "0":

$artikel_nr=$string[$i];

break;

case "1":

$lage==$string[$i];

break;

case "2":

$rebsorte==$string[$i];

break;

case "3":

$bbn=$string[$i];

break;

case "4":

$ean_fl=$string[$i];

break;

case "5":

$ean_kt=$string[$i];

break;

case "6":

$inhalt_kt=$string[$i];

break;

case "7":

$inhalt_fl=$string[$i];

break;

}

}else{

echo('<font color="Green">"LEER"</font>-ENDE-');

}

}

echo("....variable...." .$ean_kt."....");

$session_ID = md5(uniqid(microtime()));

$sql = @mysql_query("INSERT INTO tbl_gwf_artikel SET id='$session_ID',

artikel_nr = '$artikel_nr', lage = '$lage', rebsorte='$rebsorte',

bbn='$bbn', ean_fl='$ean_fl', ean_kt = '$ean_kt', inhalt_kt = '$inhalt_kt',

firstname = '$firstname', surname = '$surname', zone = '$zone',

inhalt_fl = '$inhalt_fl'");

echo(mysql_error($sql));

echo('<font color="RED">BREAK</font><br/>');

$z=$z+1;

}

?>

</html>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, daß ich mir den Code nicht bis zum Ende durchgelesen habe, aber

1. Kannst du das in Zukunft in CODE- oder PHP-Tags setzen?

2. Benutze die Funktion file(), die dir eine Textdatei zeilenweise in ein Array liest. Dieses wiederum kannst du mit foreach() durchgehen, exploden (den switch-Teil kann man sich im Prinzip auch sparen) und dann in den INSERT einsetzen.

3. ist dein INSERT-Statement falsch. Du vermischst hier INSERT und UPDATE.

Link zu diesem Kommentar
Auf anderen Seiten teilen

INSERT - fügt einen neuen Datensatz in eine Tabelle ein:


INSERT INTO <tabelle>[(<feld_1>, <feld_2>, ..)] VALUES (<wert_1>, <wert_2>, ..)

UPDATE - dient zum ändern eines bereits vorhandenen Datensatzes in einer Tabelle:

UPDATE <tabelle> SET <feld_1> = <wert_1> [, <feld_2> = <wert_2>, .. ] WHERE <bedingung>

Was in spitzen Klammern steht, ersetzt du natürlich durch die jeweils richtigen Angaben. Was in eckigen Klammern steht, ist optional.

Link zu diesem Kommentar
Auf anderen Seiten teilen

mit meinem script funktioniert es jetzt auch das Eintragen von daten in die Tabelle. das einzige problem was ich jetzt habe ist das ich nicht alle daten in die tabelle bekomme. 4000 zeilen hätte ich die von der txt-datei in die tabelle gelesen werden soll. er schreibt mir aber gerade mal 798 rein.

wo ist das problem??

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...