148 lines
3.5 KiB
PHP
148 lines
3.5 KiB
PHP
<?php
|
|
$uploadfile = "tmp/art_" . $_SESSION['TID'] . "_" . PREFIX . ".csv";
|
|
$handle = fopen($uploadfile, 'r');
|
|
$dateiinhalt = fread($handle, filesize($uploadfile));
|
|
// Konvertiere Dateiinhalt
|
|
if (mb_check_encoding($dateiinhalt, 'UTF-8'))
|
|
{
|
|
$dateiinhalt = mb_convert_encoding($dateiinhalt, 'ISO-8859-1', 'UTF-8');
|
|
}
|
|
elseif (mb_check_encoding($dateiinhalt, 'ISO-8859-1'))
|
|
{
|
|
}
|
|
// Ende Konvertierung
|
|
|
|
$array2prep = explode("\n", $dateiinhalt);
|
|
$number2prep = count($array2prep);
|
|
$j = 0;
|
|
$k = 0;
|
|
while ($j < $number2prep)
|
|
{
|
|
if (1 == substr_count($array2prep[$j], '"') % 2)
|
|
{
|
|
$array[$k] = $array2prep[$j];
|
|
$j++;
|
|
while ((0 == substr_count($array2prep[$j], '"')) AND ($j < $number2prep))
|
|
{
|
|
$array[$k] .= "\n" . $array2prep[$j];
|
|
$j++;
|
|
}
|
|
$array[$k] .= "\n" . $array2prep[$j];
|
|
$j++;
|
|
}
|
|
else
|
|
{
|
|
$array[$k] = $array2prep[$j];
|
|
$j++;
|
|
}
|
|
$k++;
|
|
}
|
|
$number_rows = count($array) - 1;
|
|
$error = 0;
|
|
$gut = 0;
|
|
|
|
|
|
echo "<h1>Ergebnis des Datenimports:</h1>\n";
|
|
for ($i = $_POST['Beginn']; $i < $number_rows; $i++)
|
|
{
|
|
if ("," == $_POST['separator'])
|
|
{
|
|
$datensatz = explode(",", $array[$i]);
|
|
}
|
|
elseif (";" == $_POST['separator'])
|
|
{
|
|
$datensatz = explode(";", $array[$i]);
|
|
}
|
|
elseif ("Tabulator" == $_POST['separator'])
|
|
{
|
|
$datensatz = explode("\t", $array[$i]);
|
|
}
|
|
if ("" != $datensatz[$_POST['Datum']])
|
|
{
|
|
$nt = explode(".", $datensatz[$_POST['Datum']]);
|
|
if (3 != sizeof($nt))
|
|
{
|
|
$nt = explode("-", $datensatz[$_POST['Datum']]);
|
|
if (3 == sizeof($nt))
|
|
{
|
|
$Datum = " Datum = \"" . $nt['0'] . "-" . $nt['1'] . "-" . $nt['2'] . "\"";
|
|
}
|
|
else
|
|
{
|
|
$Datum = " Datum = CURDATE()";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (4 != strlen($nt['2']))
|
|
{
|
|
$Datum = " Datum = CURDATE()";
|
|
}
|
|
else
|
|
{
|
|
if (checkdate($nt['1'], $nt['0'], $nt['2']))
|
|
{
|
|
$Datum = " Datum = \"" . $nt['2'] . "-" . $nt['1'] . "-" . $nt['0'] . "\"";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$Datum = " Datum = CURDATE()";
|
|
}
|
|
|
|
$number_cols = count($datensatz);
|
|
if ($number_cols < 9)
|
|
{
|
|
for ($temp = $number_cols; $temp <= 9; $temp++)
|
|
{
|
|
$datensatz[$temp] = "";
|
|
}
|
|
}
|
|
for ($temp = 0; $temp < 9; $temp++)
|
|
{
|
|
$datensatz[$temp] = str_replace('""', '\\', $datensatz[$temp]);
|
|
$datensatz[$temp] = trim($datensatz[$temp]);
|
|
$datensatz[$temp] = trim($datensatz[$temp], '"');
|
|
$datensatz[$temp] = str_replace('\\', '"', $datensatz[$temp]);
|
|
}
|
|
$sql = "INSERT INTO " . PREFIX . "_Artikel SET \n";
|
|
if ("" == $_POST['ID'])
|
|
{
|
|
$sql .= " ID = NULL,\n";
|
|
}
|
|
else
|
|
{
|
|
$sql .= " ID = \"" . $datensatz[$_POST['ID']] . "\",";
|
|
}
|
|
$sql .= " Bezeichnung = \"" . $datensatz[$_POST['Bezeichnung']] . "\",
|
|
Preis = \"" . addslashes(stripslashes($datensatz[$_POST['Preis']])) . "\",
|
|
Feld1 = \"" . addslashes(stripslashes($datensatz[$_POST['Feld1']])) . "\",
|
|
Feld2 = \"" . addslashes(stripslashes($datensatz[$_POST['Feld2']])) . "\",
|
|
Feld3 = \"" . addslashes(stripslashes($datensatz[$_POST['Feld3']])) . "\",
|
|
Feld4 = \"" . addslashes(stripslashes($datensatz[$_POST['Feld4']])) . "\",
|
|
Feld5 = \"" . addslashes(stripslashes($datensatz[$_POST['Feld5']])) . "\",
|
|
" . $Datum . ";";
|
|
$stmt = $db->prepare($sql);
|
|
if (!$stmt)
|
|
{
|
|
echo "<p>Datensatz " . $datensatz[$_POST['Bezeichnung']] . " konnte nicht angelegt werden: " . $db->error;
|
|
$error++;
|
|
}
|
|
else
|
|
{
|
|
if (!$stmt->execute())
|
|
{
|
|
echo "<p>Datensatz " . $datensatz[$_POST['Bezeichnung']] . " konnte nicht angelegt werden: " . $stmt->error;
|
|
$error++;
|
|
}
|
|
else
|
|
{
|
|
$gut++;
|
|
}
|
|
}
|
|
|
|
}
|
|
echo "<h2>" . $error . " fehlerhafte Datensätze wurden nicht eingefügt!<br />" . $gut . " Datensätze importiert</p>";
|
|
unlink($uploadfile); |