Хм, Действительно.
$itmq = "insert into item values('','',$itm)"; //Ошибка скорее всего здесь. Кавычками я как бы пропускаю ключи от заполнения. Как можно поступить иначе, не перелопачивая цикл?
<?
set_time_limit (0);
function get_micro_time(){list($usec, $sec) = explode(" ",microtime());return ((float)$usec + (float)$sec);}
$start_time = get_micro_time();
// Подразумевается, что до этого мы уже создали пустую базу и пользователя
// с одинаковыми именами: "domen_test" и паролем "12345abcd"
$dbhost = "localhost"; // Хост
$dbuser = "admin"; // Имя пользователя
$dbpassword = "123456"; // Пароль
$dbname = "xml"; // Имя базы данных
//N-p Ключ человека, N-s Ключ услуги
//or die(mysql_error()) после каждого mysql_query() вывод ошибок
// mysql_connect() открывает соединение с сервером MySQL $dbhost
$link = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname, $link); // Выбирает базу данных MySQL $dbname
$xml = simplexml_load_file('c:\\WebServers\\home\\test1.ru\\www\\4.xml');
foreach($xml->PersAcc->attributes() as $a => $b){$pers .= "$a varchar(50),";}
$prs = substr($pers,0,-1);
$prsq = "create table persacc (N_p int AUTO_INCREMENT NOT NULL,$prs,PRIMARY KEY (N_p))";
mysql_query($prsq); // создаем таблицу
$pers="";
foreach($xml->PersAcc->item->attributes() as $a => $b){$item .= "$a varchar(50),";}
$itm = substr($item,0,-1);
$itmq = "create table item (N_s int AUTO_INCREMENT NOT NULL,N_p int NOT NULL, $itm, PRIMARY KEY(N_s), FOREIGN KEY (N_p) REFERENCES persacc(N_p))";//задаем ключ
mysql_query($itmq); // создаем таблицу
$item="";
if (!mysql_ping ($link)) {
mysql_close($link);
$link = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname, $link);
}
foreach($xml->PersAcc as $PersAcc){
foreach($PersAcc->attributes() as $a){$pers .= "'$a',";}
$kod_ls = $PersAcc['kod_ls'];//наш мастер ключ
$prs = substr($pers,0,-1);
$prsq = "insert into persacc values('',$prs)";
mysql_query($prsq); // Добавляем запись в таблицу
foreach($PersAcc->item as $item){
foreach($item->attributes() as $a){$item .= "'$a',";}
$itm = substr($item,0,-1);
$itmq = "insert into item values('','',$itm)"; //Ошибка скорее всего здесь. Кавычками я как бы пропускаю ключи от заполнения. Как можно поступить иначе, не перелопачивая цикл?
mysql_query($itmq) or die(mysql_error()); // Добавляем запись в таблицу
}
$pers="";
$item="";
}
mysql_close($link); // Закрываем соединение с сервером $dbhost
echo
'Скрипт работал ',
($start_time - get_micro_time()),
' сек';
?>