azubi-tigerente Geschrieben 1. Dezember 2004 Teilen 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> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 1. Dezember 2004 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azubi-tigerente Geschrieben 1. Dezember 2004 Autor Teilen 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?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 1. Dezember 2004 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azubi-tigerente Geschrieben 2. Dezember 2004 Autor Teilen 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?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.