[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как модифицировать парсер, чтобы он проверял
RussianDesigner
Задача такая:

есть файл (парсер)
для загрузки товаров из файла Excel в базу Mysql

парсер работает без вопросов
код его вот:

<?php
$connect = mysql_connect("localhost","admin","12345");
$db = mysql_select_db("produktu",$connect) or die(mysql_error());
require_once ('Excel/reader.php');
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('utf8');
$data->setUTFEncoder('mb');
$data->read('food.xls');
error_reporting(E_ALL);
for($j=2; $j<=$data->sheets[0]['numRows']; $j++) // Начинаем выводить данные начиная с первой строки
{
for($i=0; $i<=$data->sheets[0]['numCols']; $i++) // Начинаем выводить данные для всех столбцов
{
if(empty($data->sheets[0]['cells'][$j][$i]))
{
$row[] = "'empty'"; // Создаём массив из значений столбцов для каждой строки
}
else
{
$row[] = "'".$data->sheets[0]['cells'][$j][$i]."'"; // Создаём массив из значений столбцов для каждой строки
}
}

$row = implode(",", $row); // Объединяем массив в строку, для запроса mysql
$sql = "INSERT INTO `tovaruall` VALUES ($row)"; // Создаём запрос mysql
mysql_query("SET NAMES 'utf8'"); // Устанавливаем кодировку для mysql
if(!mysql_query($sql)) // Выполняем запрос mysql
{
echo 'Error: '.mysql_error();
}
else
{
echo 'Add success!<br>';
}
unset($row); // Удаляем переменную, чтоб массив со строкой не путался
}
?>



файл екселя для проверки называется food.xls
вот он
user posted image





база выглядит так:
user posted image


Необходимо: чтобы в случае совпадения в ячейке kod и
данных в ячейке код файла эксель
необходимо, чтобы данные в базе заменялись на новые

т.к. при работе этого парсера появляются дублирование, т.к. он не проверяет на совпадение,
а необходимо, чтобы была проверка,
прописать
если уже существуют такие данные, то дублировать их не надо, а просто, обновить.

как это прописать в php
т.е. какие строки добавить в парсер?

думаю как-то в этом направлении:
$result=mysql_query("SELECT kod FROM `tovaruall` ");
while($myrow = mysql_fetch_assoc($result)) {
if( данные обрабатываемые парсером == $myrow['kod']) { ОБНОВИТЬ }
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.