Здравствуйте, у меня такая проблема. Код импортирует данные CSV файла в таблицу на базе. Каждая строка CSV составляет из 7 данных которые разделены запятыми.
Например
CHECKID,NAME,SURNAME,MIDDLENAME,POSITION,WORKPLACE,WORKTIME
14877,Ivan,Petrov,Aleksandrovich,Acountant,Office,9 hour
Каждый день импортируется новый CSV файл и в каждом файле CHECKID может повтарится. Как сделать чтобы код проверял в базе и в CSV файле, если в таблице(база) уже есть такой CHECKID он не импортировал данную страку из CSV файла, а все остальные строки импортировал? То есть если есть в базе такой запись - 14877, он не импортировал строку из CSV)
Заранее спасибо))
Вот код.
<?php
error_reporting(0); // Выключаем показ ошибок. Чтобы их видеть - вместо 0 поставьте E_ALL
include('db_conn.php');
$max_file_size = 5; // Максимальный размер файла в МегаБайтах
if($_POST['update']=='OK'){
// СТАРТ Загрузка файла на сервер
if($_FILES["filename"]["size"] > $max_file_size*1024*1024){
echo 'Размер файла превышает '.$max_file_size.' Мб!';
include('form_file_load.php');
exit;
}
if(copy($_FILES["filename"]["tmp_name"],$path.$_FILES["filename"]["name"])){
echo("Добавлен "."<b>".$_FILES["filename"]["name"]."</b>"." !<br />");
}
else{
echo 'Errorլ<br>';
include('form_file_load.php');
exit;
}
$file = fopen('php://memory', 'w+');
fwrite($file, iconv('UTF-8', 'UTF-8', file_get_contents($_FILES["filename"]["name"])));
rewind($file);
$r = 1;
while (($row = fgetcsv($file, 1000, ",")) != FALSE) {
$r++;
if($r == 2) {continue;} // Не дает записать в БД Заголовки Прайс-листа
$ins="INSERT INTO `Table1` (`CHECKID`,`NAME`,`SURNAME`,`MIDDLENAME`, `POSITION`, `WORKPLACE`,`WORKTIME`
)VALUES('$row[0]','$row[1]','$row[2]', '$row[3]', '$row[4]', '$row[5]', '$row[6]', '$row[7]' )";
$query = mysql_query($ins);
if(!$query) die('Error!!!');
}
fclose($file);
echo 'Refresh page - '.$r;
header('Location: my_panel.php');
}
else{
include('form_file_load.php');
}
?>
|