- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 
                        $fStr = fgets($fp);
if ($k==0 && $IsFirst)
continue;
$arLine = explode(";", $fStr);
$type = intval($arLine[0]);
$articul = trim($arLine[1]);
$section_id = intval($arLine[2]);
$model = trim($arLine[3]);
$name = trim($arLine[4]);
$brand = trim($arLine[5]);
$width = trim($arLine[6]);
$radius = trim($arLine[7]);
$pcd = trim($arLine[8]);
$et = trim($arLine[9]);
$dia = trim($arLine[10]);
$dop = trim($arLine[11]);
$color = trim($arLine[12]);
//и чуть позже
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 38, 'S', '".$articul."', null, '')";
$res = SQLResult($query);
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 25, 'L', '', ".$type.", '')";
$res = SQLResult($query);
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 17, 'S', '".$width."', null, '')";
$res = SQLResult($query);
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 18, 'S', '".$radius."', null, '')";
$res = SQLResult($query);
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 19, 'S', '".$pcd."', null, '')";
$res = SQLResult($query);
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 20, 'S', '".$et."', null, '')";
$res = SQLResult($query);
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 45, 'S', '".$dia."', null, '')";
$res = SQLResult($query);
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 21, 'S', '".$color."', null, '')";
$res = SQLResult($query);
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 22, 'S', '0', null, '')";
$res = SQLResult($query);
$query = "INSERT INTO ".$dbCatalogElProp." VALUES (null, ".$element_id.", 23, 'S', '', null, '')";
$res = SQLResult($query);
                                 
        
про ассоциативные массивы тоже не слыхали.
Я тоже так делал, когда нужно было парсить большой XML. Десять узлов получаем, кодировку меняем, проверки проводим, вставляем запись в базу. Общаться с десятью разными переменными банально короче по количеству символов. $_varName короче, чем $_varArray['name']. У меня на каждой итерации чтения данных из файла все переменные затирались новыми данными и значениями атрибутов.
А вот когда ничего не надо было делать, только intval, из CSV файла доставал данные числовые, тогда в sql бросал в поля числа напрямую. Разделял по ; и забрасывал. Никаких проблем. Но идея та же.
а класс который бы это всё далал, как делают великие бледнолицие не пробовал?
один для работы с бд. с методом для встаки, и передавал бы сюда SQLResult($query); ещё и номер соединения,
ворой бы парсил XML
3-й с фильтрами.
а потом это всё собрать как надо.???
2) $res = SQLResult($query); $res = SQLResult($query); -- копипаста такая копипаста...
3) Раз уж кавычки двойные, то можно было бы и без конкатенации строк обойтись.
Ну и да, очень подозрительная структура базы данных.
Когда я встретил аналог подобного в реальной жизни -- банально поменял место работы. А проект, в котором я сей шедевр встретил, спустя где-то год перестал подавать признаки жизни. Удивительное рядом.
Если есть таблицы перечесляющая всю оргтехнику в офисе, то таблца сущности будет содержать только бухданные, а все свойства отлетят в отдельную таблицу, которая сопряжётся с оргтехникой через третью. Это произойдёт потому что карандаши обладают совершенно иным набором свойств, чем настольная лампа или принтер.
Вообще, если я, например, делаю проект, где есть работа с БД, то первым делом я определяю конечные модули, которые общаются с ограниченным числом таблиц. Пересечения сопрягаю через третьи таблицы. Таким образом один кусок программы становится независимым от данных в другом куске.
Ещё более полезной эта практика является при работе с файлами.
А с БД это позволяет легче организовать её "нормализованность". Хотя всё равно жизнь расставляет всё своим порядком, дублирование данных всё равно возникает в угоду скорости и минимизации выборок.
Ну простите. =]
Я видимо не так понял разговор. Если в плане большой копипасты и идентичности строк, то понятное дело, можно было организовать функцию рядом, которая это делает.
Относительно циклов -- это вопрос жёсткости контрактов. Если контракт жёсткий, всегда понятно что и сколько входит, то естественно от цикла отказаться. То есть, это в моём мире С++ следует отказаться от цикла, а функции объявить inline. Как в php поступать... Ну я бы по привычке отказался от циклов.