sourcer21
Новичок
Помогите запутался в алгоритме
Есть структура в файле просто текстом вида:
1. Электроника и Фото
1.1. Аудиотехника для дома
1.1.1. Музыкальные центры
1.1.1.1 Что то еще
1.1.2. Магнитолы
1.1.3. Радиоприемники
2. фигня какая то еще
2.1. еще что то
....
и так далее..
.....
Вложенность неизвестна оринттровачно 5 уровней в структуре
Я убрал все пробелы впереди и она стала во такой
1. Электроника и Фото
1.1. Аудиотехника для дома
1.1.1. Музыкальные центры
1.1.1.1 Что то еще
1.1.2. Магнитолы
1.1.3. Радиоприемники
2. фигня какая то еще
2.1. еще что то
.......
Надо ее переделать в базу в структуру вида id | parent_id | name
Вот что я написал:
Собсттвенно всё бы ничего, НО!
Так как я сливаю просто цифры для формирования ID и PArent_ID
получается что
1.11
и
11.1
выходит одно и тоже
Помогите выйти из ситуации пожалуйста.
Есть структура в файле просто текстом вида:
1. Электроника и Фото
1.1. Аудиотехника для дома
1.1.1. Музыкальные центры
1.1.1.1 Что то еще
1.1.2. Магнитолы
1.1.3. Радиоприемники
2. фигня какая то еще
2.1. еще что то
....
и так далее..
.....
Вложенность неизвестна оринттровачно 5 уровней в структуре
Я убрал все пробелы впереди и она стала во такой
1. Электроника и Фото
1.1. Аудиотехника для дома
1.1.1. Музыкальные центры
1.1.1.1 Что то еще
1.1.2. Магнитолы
1.1.3. Радиоприемники
2. фигня какая то еще
2.1. еще что то
.......
Надо ее переделать в базу в структуру вида id | parent_id | name
Вот что я написал:
PHP:
<?
include("dbopen.inc");
$handle = fopen ("txt", "r");
while (!feof ($handle)) {
$name = fgets($handle, 4096);
preg_match("/(.*?) (.*?)\r\n/ims",$name,$out);
$nums=explode(".",$out[1]);
$nums2=count($nums)-1;
print $out[1].$out[2]."<br>";
if($nums2==1)
{
$structure_id=$nums[0];
$parent_id=0;
} else
{
for($i=0;$i<=$nums2-1;$i++)
$structure_id.=$nums[$i];
for($i=0;$i<=$nums2-2;$i++)
$parent_id.=$nums[$i];
}
$structure_id++;
$parent_id++;
print $structure_id."_".$parent_id."<br>";
$query="INSERT INTO `structure` ( `structure_id` , `parent_id`, `name`) VALUES ('".$structure_id."','".$parent_id."','".$out[2]."');";
$result = mysql_query($query, $link);
$structure_id="";
$parent_id="";
$i="";
}
fclose ($handle);
?>
Так как я сливаю просто цифры для формирования ID и PArent_ID
получается что
1.11
и
11.1
выходит одно и тоже
Помогите выйти из ситуации пожалуйста.