![]() |
|
||||||||||
|
|||||
|
Banned
Регистрация: Nov 2001
Сообщений: 56
|
Привет Кодерам!
версия 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)); ?> |
|
|||||
|
Banned
Регистрация: Nov 2001
Сообщений: 56
|
ну чё. никто незнает чтоли?????????????
|
|
|||||
|
Banned
Регистрация: Nov 2001
Сообщений: 56
|
ну вы нубы. я сам разобрался. а вам нескажу.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Вам ответят, когда захотят.
Если не ответили — значит ваш вопрос некорректен или вам просто не хотят отвечать. |
|
|||||
|
Banned
Регистрация: Nov 2001
Сообщений: 56
|
да просто незнают. )
|
|
|||||
|
А то ! Мы тут до сих пор в ушанках ходим и на кои-8 разговариваем...
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:38. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|