Здравствуйте, у меня такая проблема. Код импортирует данные 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'); } ?>
выбрать известные из базы, пометить в импортируемом файле, импортировать не помеченные из файла в базу
А если нужна проверить если CHECKID,NAME,SURNAME,MIDDLENAME поля в CSV файле совпадают со строкой в таблице базы данных, то не импортировал, а все остальные импортировал
Читай файлик построково, сгенерируй массив данных, если слишком много - отпартицируй, сгенерируй запрос для каждой порции и воспользуйся ON DUPLICATE KEY. 5 комментов ниочем.