Каталог товаров

name " . $_FILES['userfile']['name'] . "
type " . $_FILES['userfile']['type'] . "
size " . $_FILES['userfile']['size'] . "
tmp_name " . $_FILES['userfile']['tmp_name'] . "
error " . $_FILES['userfile']['error'] ; $tmp_name = $_FILES['userfile']['tmp_name']; move_uploaded_file($tmp_name, "tmp/" . $_FILES['userfile']['name']); $prise = file_get_contents("tmp/" . $_FILES['userfile']['name']); $prise = trim ($prise); // echo "
$prise"; echo "

"; include ("db-config.php") ; $m_prise = explode(chr(13).chr(10), $prise); // ПРОВЕРКА НА НАЛИЧИЕ НЕДОПУСТИМЫХ СИМВОЛОВ for ($i = 1; $i < count ($m_prise); $i++) { $n_zagr ++; unset($m_str); // Удаление массива $m_str = explode(";", $m_prise[$i]); $producer = $m_str[0]; $artikul = $m_str[1]; $name_tov = $m_str[2]; $cena = $m_str[3]; $kol = $m_str[4]; $producer_utf8 = iconv('cp1251', 'utf-8', $producer); $artikul_utf8 = iconv('cp1251', 'utf-8', $artikul); $name_tov_utf8 = iconv('cp1251', 'utf-8', $name_tov); $cena_utf8 = iconv('cp1251', 'utf-8', $cena); $kol_utf8 = iconv('cp1251', 'utf-8', $kol); $n_str_err = ($i+1); // Проверка изготовителя if (strstr ($producer, "`")) { $producer = str_replace ("`", " ", $producer); $m_prise[$i] = "$producer;$artikul;$name_tov;$cena;$kol"; //echo "
Удален запрещеный знак ` в названии изготовителя в строке $n_str_err: $producer_utf8 $artikul_utf8 $name_tov_utf8 $cena_utf8 $kol_utf8"; } if (strstr ($producer, "'")) { $producer = str_replace ("'", " ", $producer); $m_prise[$i] = "$producer;$artikul;$name_tov;$cena;$kol"; //echo "
Удален запрещеный знак ' в названии изготовителя в строке $n_str_err: $producer_utf8 $artikul_utf8 $name_tov_utf8 $cena_utf8 $kol_utf8"; } //echo "
$i " . strlen ($producer) . " " . $producer; if (strlen ($producer) >= 59) { $flag_err = "YES"; echo "
Слишком длинное название изготовителя в строке $n_str_err: Изготовитель $producer_utf8
Длина названия изготовителя должна быть не более 60 знаков с пробелами. "; } // Проверка артикула. Только цифры и буквы латинского алфавита, а также пробелы, точки, тире или слеш if ($artikul != ereg_replace("[^-a-zA-Z0-9/. ]", "", $artikul)) { $flag_err = "YES"; echo "
Ошибка артикула в строке $n_str_err: Артикул $artikul_utf8 "; } // Проверка названия товара if (strstr ($name_tov, "`")) { $name_tov = str_replace ("`", " ", $name_tov); $m_prise[$i] = "$producer;$artikul;$name_tov;$cena;$kol"; //echo "
Удален запрещеный знак ` в названии товара в строке $n_str_err: $producer_utf8 $artikul_utf8 $name_tov_utf8 $cena_utf8 $kol_utf8"; } if (strstr ($name_tov, "'")) { $name_tov = str_replace ("'", " ", $name_tov); $m_prise[$i] = "$producer;$artikul;$name_tov;$cena;$kol"; //echo "
Удален запрещеный знак ' в названии товара в строке $n_str_err: $producer_utf8 $artikul_utf8 $name_tov_utf8 $cena_utf8 $kol_utf8"; } // Проверка цены. Только цифры if ($cena != preg_replace('/\D/', '', $cena)) { $flag_err = "YES"; echo "
Ошибка цены в строке $n_str_err: Цена $cena_utf8 "; } // Проверка количества. Только цифры if ($kol != preg_replace('/\D/', '', $kol)) { $flag_err = "YES"; echo "
Ошибка количества в строке $n_str_err: Количество $kol_utf8"; } } if ($flag_err) die ("

Загрузка данного прайс листа невозможна до исправления ошибок"); echo "

str 129
"; // Зафиксируе количество товара в каталоге до загрузки unset($res); unset($n_tov_old); $res = mysql_query("SELECT COUNT(id) AS cnt FROM kattov"); $n_tov_old = mysql_result($res, 0, 'cnt'); $query = "INSERT INTO kattov (producer, artikul, name_tov, cena, kol)" . chr(13).chr(10) . "VALUES" . chr(13).chr(10); for ($i = 1; $i < count ($m_prise); $i++) { unset($m_str); // Удаление массива $m_str = explode(";", $m_prise[$i]); $producer = $m_str[0]; $artikul = $m_str[1]; $name_tov = $m_str[2]; $cena = $m_str[3]; $kol = $m_str[4]; $producer = iconv('cp1251', 'utf-8', $producer); $name_tov = iconv('cp1251', 'utf-8', $name_tov); // ('Газмяс', 'XYZ', 'Тушенка', '200', '600'), $query .= chr(9) . "('$producer', '$artikul', '$name_tov', $cena, $kol)," . chr(13).chr(10); } $query = trim ($query); $query = trim ($query, ","); $query .= chr(13).chr(10) . "ON DUPLICATE KEY UPDATE cena = VALUES(cena), kol = VALUES(kol);"; mysql_query($query); echo mysql_errno()." 175 : ".mysql_error()."
"; file_put_contents("query.txt", $query); // Подсчитаем количствто товара после загрузки unset($res); unset($n_vse_new); $res = mysql_query("SELECT COUNT(id) AS cnt FROM kattov"); $n_tov_new = mysql_result($res, 0, 'cnt'); echo "
Товаров в каталоге до загрузки $n_tov_old
Товаров в каталоге после загрузки $n_tov_new"; echo "
Загружено товаров " . ($n_tov_new - $n_tov_old); echo "
Обновлено товаров " . (count ($m_prise) - 1 - $n_tov_new + $n_tov_old); // КОНТРОЛЬ ВРЕМЕНИ ИСПОЛНЕНИЯ list($usec, $sec) = explode(" ", microtime()); $finich = $sec + $usec; $t_isp = (round (100*($finich - $start)))/100 ; echo "
Время исполнения $t_isp сек.
"; $mem_pik = round (memory_get_peak_usage() / 1000); echo "
Пиковое потребление памяти $mem_pik Кб.
"; ?>