- 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);
guest 23.09.2009 15:24 # 0
gorky 23.09.2009 16:41 # 0
про ассоциативные массивы тоже не слыхали.
interested 23.09.2009 17:04 # −1
Я тоже так делал, когда нужно было парсить большой XML. Десять узлов получаем, кодировку меняем, проверки проводим, вставляем запись в базу. Общаться с десятью разными переменными банально короче по количеству символов. $_varName короче, чем $_varArray['name']. У меня на каждой итерации чтения данных из файла все переменные затирались новыми данными и значениями атрибутов.
А вот когда ничего не надо было делать, только intval, из CSV файла доставал данные числовые, тогда в sql бросал в поля числа напрямую. Разделял по ; и забрасывал. Никаких проблем. Но идея та же.
guest 25.09.2009 09:50 # 0
а класс который бы это всё далал, как делают великие бледнолицие не пробовал?
один для работы с бд. с методом для встаки, и передавал бы сюда SQLResult($query); ещё и номер соединения,
ворой бы парсил XML
3-й с фильтрами.
а потом это всё собрать как надо.???
guest 23.09.2009 18:01 # 0
2) $res = SQLResult($query); $res = SQLResult($query); -- копипаста такая копипаста...
3) Раз уж кавычки двойные, то можно было бы и без конкатенации строк обойтись.
Ну и да, очень подозрительная структура базы данных.
interested 23.09.2009 18:34 # 0
gorky 23.09.2009 18:43 # 0
guest 23.09.2009 20:43 # 0
Когда я встретил аналог подобного в реальной жизни -- банально поменял место работы. А проект, в котором я сей шедевр встретил, спустя где-то год перестал подавать признаки жизни. Удивительное рядом.
gorky 24.09.2009 09:16 # 0
interested 24.09.2009 09:50 # 0
Если есть таблицы перечесляющая всю оргтехнику в офисе, то таблца сущности будет содержать только бухданные, а все свойства отлетят в отдельную таблицу, которая сопряжётся с оргтехникой через третью. Это произойдёт потому что карандаши обладают совершенно иным набором свойств, чем настольная лампа или принтер.
Вообще, если я, например, делаю проект, где есть работа с БД, то первым делом я определяю конечные модули, которые общаются с ограниченным числом таблиц. Пересечения сопрягаю через третьи таблицы. Таким образом один кусок программы становится независимым от данных в другом куске.
interested 24.09.2009 09:56 # +1
interested 24.09.2009 09:59 # 0
Ещё более полезной эта практика является при работе с файлами.
А с БД это позволяет легче организовать её "нормализованность". Хотя всё равно жизнь расставляет всё своим порядком, дублирование данных всё равно возникает в угоду скорости и минимизации выборок.
gorky 24.09.2009 10:17 # 0
interested 24.09.2009 11:47 # 0
Ну простите. =]
Я видимо не так понял разговор. Если в плане большой копипасты и идентичности строк, то понятное дело, можно было организовать функцию рядом, которая это делает.
Относительно циклов -- это вопрос жёсткости контрактов. Если контракт жёсткий, всегда понятно что и сколько входит, то естественно от цикла отказаться. То есть, это в моём мире С++ следует отказаться от цикла, а функции объявить inline. Как в php поступать... Ну я бы по привычке отказался от циклов.