[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема в чтении Excel
Zante5555
Помогите разобраться...устал уже. Задача такая - нужно с Excel файла с помощью скрипта по определённым колонкам взять значение поискать в базе - если есть - исправить на то что в файле если нету вывести на экран. В конце подсчитать количество исправленных и вывести не найденные. В общем вот следующий код:

<? 
set_time_limit(0);
define('DB_HOST', 'localhost');
define('DB_USER', '********');
define('DB_PASS', '********');
define('DB_NAME', '********');

$ctt = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die(mysql_error());
$db = mysql_select_db(DB_NAME) or die("Ошибка базы данных");
mysql_query ("SET NAMES 'windows-1251'");
#----------------------------------------------
function getXLS($xls){
include_once 'Classes/PHPExcel.php';
include_once 'Classes/PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load($xls);
$objPHPExcel->setActiveSheetIndex(0);
$aSheet = $objPHPExcel->getActiveSheet();

$array = array();

foreach($aSheet->getRowIterator() as $row){

$cellIterator = $row->getCellIterator();

$item = array();
foreach($cellIterator as $cell){

array_push($item, iconv('utf-8', 'cp1251', $cell->getCalculatedValue()));
}

array_push($array, $item);
}
return $array;
}

$xlsData = getXLS('xls/nprice.xls');

#----------------------------------------------

$col_str = sizeof($xlsData);

for ($i = 0; $i < $col_str; $i++) {

$artikle = $xlsData[$i][1];
$cena = $xlsData[$i][3];

$tmp=" UPDATE SS_products
SET Price = "
.$cena.", sort_order = -51
WHERE product_code = "
.$artikle."
AND categoryID = 1443
"
;

$res = mysql_query($tmp);
$num = mysql_affected_rows();
$num2 = $num;

if ($num = 0) {

$notarticle .= $artikle.$cena."<br>";

global $notarticle;

}

$num2 += $num2;

global $num2;

}
#----------------------------------------------
echo "Исправлено товаров: <b>".$num2."</b><br><br>";
echo "Не найдено товаров: <b>".$notarticle."</b><br><br>";

?>


Сначала сервер долго думал потом вылетела ошибка тайм-аута 300, я убрал тайм-аут теперь вылазит ошибка что не хватает памяти, но сам файл маленький, я даже урезал ради теста в 10 строк.
Быстрый ответ:

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