hey leute ...
ich habe ne Online Kunden Verwaltung gebastelt in der Leute ihre eigenen Kunden eintragen und auch per CSV Datei importieren können.
ichhabe für die kunden eine Musterdatei angelegt die Sie befüllen können, um Ihre Daten zu importieren zu können. Soweit kein Problem.
Die Struktur der csv sieht übrigens so aus:
Und so lese ich die Datei ein
das Funktioniert auch wunderbar ... allerdings werden Felder in denen ein Sonderzeichen vorkommt einfach abgeschitten.
kleines Beispiel:
in dem Feld "Ort" steht "Köln" ... in der Datenbank kommt an "K" oder bei name steht 'Klüser' und in die Datenbank wird 'Kl' geschrieben ... woran liegt das und falls es an der Kodierung der Datei leiegn sollte ... wie kann ich meine Funktion so umschreiben, dass die Funktion selber den 'Input' umkodiert oder nicht ?
ich habe ne Online Kunden Verwaltung gebastelt in der Leute ihre eigenen Kunden eintragen und auch per CSV Datei importieren können.
ichhabe für die kunden eine Musterdatei angelegt die Sie befüllen können, um Ihre Daten zu importieren zu können. Soweit kein Problem.
Die Struktur der csv sieht übrigens so aus:
Code:
anrede1;titel1;vorname1;nachname1;anrede2;titel2;vorname2; (etc....)
Und so lese ich die Datei ein
PHP:
function csvToSql($csv,$ziel) {
$array = getColumns($ziel);
$zeile = 1;
$error = 0;
$dateizeiger = fopen($_SERVER['DOCUMENT_ROOT'].'/uploads/csv/'.$csv, "r");
while(($daten = fgetcsv($dateizeiger, 130000, ";")) !== FALSE){
if ($zeile >= 2) {
foreach ($daten as $cnt => $value) $daten[$cnt] = "'".addslashes($value)."'";
if ($ziel == 'kunden') $sql = "INSERT INTO kunden (`uid`,`regDate`,`".implode("`,`",$array)."`,`status`) VALUES ('$_SESSION[uid]','".date("Y-m-d")."',".implode(",",$daten).",'1')";
if (!mysql_query($sql)) {
#echo '<p style="color:red">'.$sql.'</p>';
$error++;
} #else echo '<p style="color:green">'.$sql.'</p>';
}
$zeile++;
}
fclose($dateizeiger);
unlink($_SERVER['DOCUMENT_ROOT'].'/uploads/csv/'.$csv);
if ($error == 0) return "<span class='success'>Sie haben erfolgreich Ihre Kundenliste importiert</span>";
else return "<span class='message'>Beim Importieren der Kundenliste ist ein Fehler aufgetreten</span>";
}
das Funktioniert auch wunderbar ... allerdings werden Felder in denen ein Sonderzeichen vorkommt einfach abgeschitten.
kleines Beispiel:
in dem Feld "Ort" steht "Köln" ... in der Datenbank kommt an "K" oder bei name steht 'Klüser' und in die Datenbank wird 'Kl' geschrieben ... woran liegt das und falls es an der Kodierung der Datei leiegn sollte ... wie kann ich meine Funktion so umschreiben, dass die Funktion selber den 'Input' umkodiert oder nicht ?