Здравствуйте, я уже задавал вопросы по этому скрипту, сейчас у меня возникла проблема, что в файле CSV из которого берётся информация 200 строк, а в бд записывается только 195, а когда было 250 строк записывалось 244, в чём может быть дело?
<?php include_once "config.php"; ?>
<?PHP header("Content-Type: text/html; charset=utf-8");?>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<?php
class CSV {
private $_csv_file = null;
public function __construct($csv_file) {
if (file_exists($csv_file)) { //Если файл существует
$this->_csv_file = $csv_file; //Записываем путь к файлу в переменную
}
else {
throw new Exception("Файл \"$csv_file\" не найден");
}
}
// Метод для чтения из csv-файла. Возвращает массив с данными из csv
public function getCSV() {
$handle = fopen($this->_csv_file, "r"); //Открываем csv для чтения
$array_line_full = array(); //Массив будет хранить данные из csv
//Проходим весь csv-файл, и читаем построчно. 3-ий параметр разделитель поля
while (($line = fgetcsv($handle, 0, ";")) !== FALSE) {
$array_line_full[] = $line; //Записываем строчки в массив
}
fclose($handle); //Закрываем файл
return $array_line_full; //Возвращаем прочтенные данные
}
}
try {
$csv = new CSV("dick.csv"); //Открываем наш csv
//Чтение из CSV (и вывод на экран)
$get_csv = $csv->getCSV();
$connection=mysql_connect (HOST, USER, PASS);
$db1 = mysql_select_db (DB, $connection); //подкл к имеющейся бд
// $del="DELETE FROM pudra";
// $result=mysql_query ($del);//удаление из БД
mysql_query("set names utf8");
$query = "SELECT id FROM `pudra`";
$res = mysql_query($query);
$arrayRow = array();
while($row = mysql_fetch_array($res)){
echo "id из базы:".$row['id']."<br>\n";
array_push($arrayRow, $row['id']);
};
foreach ($get_csv as $value) { //Проходим по строкам файла CSV
$available = $value[0];
$categoryId = $value [1];
$currencyId = $value[2];
$delivery = $value[3];
$description = $value[4];
$id = $value[5];
$model = $value[6];
$modified_time = $value[7];
$name = $value[8];
$param = $value[9];
$pickup = $value[10];
$picture = $value[11];
$price = $value[12];
$store = $value[13];
$type = $value[14];
$typePrefix = $value[15];
$url = $value[16];
$vendor = $value[17];
$in_sitemap = 0;
if (in_array($id, $arrayRow, true)) {
echo "Перезаписал id: ".$id."<br>";
$update = "UPDATE users SET available = '$available', categoryId = '$categoryId', currencyId = '$currencyId', delivery = '$delivery', description = '$description', model = '$model', modified_time = '$modified_time', name = '$name', param = '$param', pickup = '$pickup', picture = '$picture', price = '$price', store = '$store', type = '$type', typePrefix = '$typePrefix', url = '$url', vendor = '$vendor', in_sitemap = '$in_sitemap' WHERE id = '$id'";
} else{
echo "Записал id: ".$id."<br>";
$query="insert into pudra values('$available','$categoryId', '$currencyId', '$delivery', '$description', '$id', '$model', '$modified_time ', '$name', '$param', '$pickup', '$picture', '$price', '$store', '$type', '$typePrefix', '$url', '$vendor', '$in_sitemap')";
$result = mysql_query($query); //добавл данных
$namesites = "http://sanerix.tk";
$link = $namesites."/?id=".$id."\r\n";
$fp = fopen("sitemap.txt", "a"); // Открываем файл в режиме записи
$test = fwrite($fp, $link); // Запись в файл
};
};
if($result) echo "Обновление успешно завершено,<br>";
else echo"Ошибка при обновлении!<br>";
fclose($fp); //Закрытие файла
if ($test) echo 'Данные в карту сайта успешно занесены.';
else echo 'Ошибка при записи в карту сайта!';
}
catch (Exception $e) { //Если csv файл не существует, выводим сообщение
echo "Ошибка: " . $e->getMessage();
}
mysql_close();
?>