Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

daten von einer textdatei in die datenbank schreiben

Empfohlene Antworten

Veröffentlicht

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>

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.

danke für die schnelle hilfe...

wie ich vermische insert und update...

wie schaut eine update und eine insert funktion aus??

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.

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??

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.