Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 14.10.2006, 21:00
ZERAM вне форума Посмотреть профиль Найти все сообщения от ZERAM
  № 1  
Ответить с цитированием
ZERAM
Banned

Регистрация: Nov 2001
Сообщений: 56
Cool Памагите Insert table.

Привет Кодерам!
версия PHP 4.4.1

Вопрос возник. Обрабатываю TEXT файл по строчно,
полученные записи добавляю с mySQL таблицу
код (см.ниже).

! но при добавлении большого колличествва записей.
программа добавляет только первые 10-15 потом выдаёт ошибку по какойто таймаут в 30 секунд.

я уменьшил загружаемые файлы. разбив их на файлы меньшего размера.
приэтом получается принять только первый файл в котором порядка 30 позиций. При повторном добавлении уже следующего файла - получаю ошибку вставки "ERROR insert ..."

что тут мржно сделать?



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<?PHP


//убираем системные сообщения
Error_Reporting(E_ALL & ~E_NOTICE);


//подключаемся к серверу
include_once "access.php";

//название файла делим на две части.
//первая часть это идентификатор [ИМЯ ТАБЛИЦЫ]

$TN=explode("-",$file); //делим на РАЗДЕЛЫ
$TABLENAME=$TN[0];

if ($func=="clear") { //-------------------------- CLEAR TABLE
mysql_query("TRUNCATE $TABLENAME");
}

if ($func=="create") { //-------------------------- CREATE TABLE

$query="CREATE TABLE $TABLENAME(
id int(5) NOT NULL AUTO_INCREMENT,
artikle TEXT(100) NOT NULL DEFAULT '',
razdel TEXT(100) NOT NULL DEFAULT '',
made TEXT(100) NOT NULL DEFAULT '',
name TEXT(100) NOT NULL DEFAULT '',
param TEXT(2000) NOT NULL DEFAULT '',
PRIMARY KEY (id)
)TYPE=MyISAM";

if (mysql_query($query)) echo "Create TABLE id: ".$TN2."<br>\n";
else echo "ERROR create table";
}


//определяем к какой таблице относится товар
//если нет таблицы с таким именем (например 'BA') то создаём

$i2=0;
$PARTY=array();
$ONE_TWO=array();

$NOM=0;


if ($fp=fopen($file,"r")) do { // $F - передаём аргументом

$i2=0;
$str=fgets($fp);

$LINE=explode("|",$str); //делим на РАЗДЕЛЫ
$LINE_COUNT=count($LINE);


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

$ONE_TWO=explode("#",$LINE[$i]);

//записываем по строчно в таблицы.
//название таблицы(куда писать) определяем по НУЛЕВОЙ части.
//если таблицы нет то создаём её.

//подготовка данных для записи

$i2=$i2+1;


if ($i2==1) { // Артикл
$artikle=$ONE_TWO[0].'-'.$ONE_TWO[1];
}

if ($i2==2) { // раздел
$razdel=$ONE_TWO[1];
}

if ($i2==3) { // производитель
$maden=$ONE_TWO[1];
}

if ($i2==4) { // наименование
$name=$ONE_TWO[1];
}

if ($i2>4) { // описание
$rambler=$rambler.$ONE_TWO[0]."#".$ONE_TWO[1]."|";
}

}

// лог на экран
print $TABLENAME.". ".$razdel." ".$maden." ".$name." ";

// процесс ДОБАВЛЕНИЯ
$query = "insert into $TABLENAME(artikle,razdel,made,name,param) values ('$artikle','$razdel','$maden','$name','$rambler')";
if (mysql_query($query)) echo " ADD complete<br>\n";
else echo " ERROR insert table<br>\n";


// очищаем для новой позиции
$Rambler=""; $razdel=""; $maden=""; $name=""; $artikle="";

}

while (!feof($fp));

?>

Создать новую тему   Часовой пояс GMT +4, время: 02:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:54.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.