Hallo zusammmen,
ich habe folgendes Problem, erstmal den Code den ich habe dann kommt meine Frage ich hoffe mir kann da dann einer weiterhelfen...
while (($fields = fgetcsv($fp, 8192, ";")) !== FALSE){
// Zeilen abarbeiten und die relevanten Spalten in Arraystruktur umkopieren
$row = array( 'table' => $fields[1],
'field' => $fields[2],
'active' => $fields[3],
'key' => $fields[6],
'type' => $fields[18],
'size' => $fields[19],
'dec' => $fields[20]);
//$num = count ($row);
// Datentyp untersuchen
$type = '';
switch($row['type']){
case = 'ACCP':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'CHAR':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'CLNT':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'CUKY':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'CURR':
$type = "DECIMAL";
$row['type'] = $type;
break;
case = 'DATS':
$type ="CHAR(8)";
$row['type'] = $type;
break;
case = 'DEC':
$type = "DECIMAL";
$row['type'] = $type;
break;
case = 'NUMC':
$type = "INT";
$row['type'] = $type;
break;
case = 'QUAN':
$type = "INT";
$row['type'] = $type;
break;
case = 'SSTRING':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'STRING':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'TIMS':
$type ="CHAR(6)";
$row['type'] = $type;
break;
case = 'VARC':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'UNIT':
$type = "VARCHAR";
$row['type'] = $type;
break;
default:
$type="VARCHAR";
$row['type'] = $type;
break;
}
Das ist also der Code, nun folgende Erläuterung:
Ich lese die Dictonary Datei von SAP aus und lese sie über PHP als csv ein. Dazu lege ich den obigen Array an und speichere die Daten zeilenweise ab. Soweit so gut klappt alles 1 a. Nur will ich jetzt in der switch Anweisung überprüfen welcher Datentyp hinterlegt ist mit dem array und dem index 'type'. Wie ihr an den case Anweisungen sehen solltet will ich die SAP Formate in MYSQL Datentypen konvertieren und dann in den array zurückschreiben.
Prinzipiell funzt das auch 1a, aber leider nur bei der default anweisung, da ich denke das der Fehler bei den ganzen Case Anweisungen liegt, dachte ich mir ich frag euch mal, weil ich seh anscheinend den Wald vor lauter Bäumen nicht. Danke schonmal...
greetz
ich habe folgendes Problem, erstmal den Code den ich habe dann kommt meine Frage ich hoffe mir kann da dann einer weiterhelfen...
while (($fields = fgetcsv($fp, 8192, ";")) !== FALSE){
// Zeilen abarbeiten und die relevanten Spalten in Arraystruktur umkopieren
$row = array( 'table' => $fields[1],
'field' => $fields[2],
'active' => $fields[3],
'key' => $fields[6],
'type' => $fields[18],
'size' => $fields[19],
'dec' => $fields[20]);
//$num = count ($row);
// Datentyp untersuchen
$type = '';
switch($row['type']){
case = 'ACCP':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'CHAR':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'CLNT':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'CUKY':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'CURR':
$type = "DECIMAL";
$row['type'] = $type;
break;
case = 'DATS':
$type ="CHAR(8)";
$row['type'] = $type;
break;
case = 'DEC':
$type = "DECIMAL";
$row['type'] = $type;
break;
case = 'NUMC':
$type = "INT";
$row['type'] = $type;
break;
case = 'QUAN':
$type = "INT";
$row['type'] = $type;
break;
case = 'SSTRING':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'STRING':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'TIMS':
$type ="CHAR(6)";
$row['type'] = $type;
break;
case = 'VARC':
$type = "VARCHAR";
$row['type'] = $type;
break;
case = 'UNIT':
$type = "VARCHAR";
$row['type'] = $type;
break;
default:
$type="VARCHAR";
$row['type'] = $type;
break;
}
Das ist also der Code, nun folgende Erläuterung:
Ich lese die Dictonary Datei von SAP aus und lese sie über PHP als csv ein. Dazu lege ich den obigen Array an und speichere die Daten zeilenweise ab. Soweit so gut klappt alles 1 a. Nur will ich jetzt in der switch Anweisung überprüfen welcher Datentyp hinterlegt ist mit dem array und dem index 'type'. Wie ihr an den case Anweisungen sehen solltet will ich die SAP Formate in MYSQL Datentypen konvertieren und dann in den array zurückschreiben.
Prinzipiell funzt das auch 1a, aber leider nur bei der default anweisung, da ich denke das der Fehler bei den ganzen Case Anweisungen liegt, dachte ich mir ich frag euch mal, weil ich seh anscheinend den Wald vor lauter Bäumen nicht. Danke schonmal...
greetz
Kommentar