azubi-tigerente Geschrieben 1. Dezember 2004 Geschrieben 1. Dezember 2004 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>
kLeiner_HobBes Geschrieben 1. Dezember 2004 Geschrieben 1. Dezember 2004 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.
azubi-tigerente Geschrieben 1. Dezember 2004 Autor Geschrieben 1. Dezember 2004 danke für die schnelle hilfe... wie ich vermische insert und update... wie schaut eine update und eine insert funktion aus??
kLeiner_HobBes Geschrieben 1. Dezember 2004 Geschrieben 1. Dezember 2004 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.
azubi-tigerente Geschrieben 2. Dezember 2004 Autor Geschrieben 2. Dezember 2004 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??
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden