Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - slash2k

Страницы: [1]
1
Попробовал все как ты сказал, phoinix.

Перемещение вниз

Получилось так


//Выбираем узел который перемещаем:

$sql "SELECT * FROM c_tree WHERE id=$parent_id";
$res mysql_query($sql);
$row mysql_fetch_array($res);
$left_key $row[\'left_key\'];
$right_key = $row [\'right_key\'];
$level = $row[\'level\'];
$page_id = $row[\'page_id\'];
$p_parent_id = $row[\'parent_id\'];

//Выбираем узел который ниже по порядку
$sql = "SELECT * FROM c_tree WHERE left_key = $right_key + 1 AND level = $level";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
$left_key_down = $row[\'left_key\'];
$right_key_down = $row [\'right_key\'];

//Получаем смещения ключей каждого узла:
$skew1 = $right_key - $left_key + 1;
$skew2 = $right_key_down - $left_key_down + 1;

//Выбираем идентификаторы:
$sql = "SELECT * FROM c_tree WHERE left_key >= $left_key AND right_key <= $right_key";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
$id_move = $row [\'id\'];

//Меняем ключи второго узла
$sql = "UPDATE c_tree SET left_key = left_key - $skew1, right_key = right_key - $skew1 WHERE left_key >= $left_key_down AND right_key <= $right_key_down";
$res = mysql_query($sql);

//Меняем ключи перемещаемого узла:

$sql = "UPDATE c_tree SET left_key = left_key + $skew2, right_key = right_key + $skew2 WHERE id IN ($id_move)";
$res = mysql_query($sql);



Все рботет, если у той записи,кот. мы перемещеаем и последующей нету потомков. Если есть, то все литит в трубу. В чем может быть проблема?

2
PHP / Карта сайта на Nested sets ?
« : 17 Сентября 2005, 19:51:37 »
А можно код?:)

3
PHP / Карта сайта на Nested sets ?
« : 17 Сентября 2005, 16:43:19 »
Цитировать
О кол-ве палочек можно судить по уровню текущего узла (level)


Это то понятно. Но ведь может быть так, что кроме палочек в ряду, будут и пробелы. Тут надо какой-то алгоритм. Наверное ведь кто-то уже сталуивался с такой проблемой!

4
PHP / Помогите с массивом
« : 31 Августа 2005, 11:58:56 »
Спасибо огромное! Наверное попробую с serialize, т.к кол-во элементов массива динамическое.

5
PHP / Помогите с массивом
« : 27 Августа 2005, 17:26:35 »
Есть массив.


$arr
[1] = "Груши" 
$arr[2] = "Яблоки" 
$arr[3] = "Апельсины" 


Мне нужно вставить в базу данных в поле items этот самый массив. Делаю так:

$arr 
print_r($arr); 
$sql "INSERT INTO my_table (items) values (\'$arr\')"
$result mysql_query ($sql); 


Но вот когда делаю запрос на этот массив из БД:


$sql 
"SELECT * FROM my_table WHERE id=1" 
$result mysql_query ($sql); 
$row mysql_fetch_array($result); 
$arr $row[\'items\']; 



У меня получается, что преременная $arr уже не массив а строка.
Как сделать чтобы это был массив?

6
PHP / Карта сайта на Nested sets ?
« : 23 Августа 2005, 19:41:50 »
Спасибо, я понял, но все равно получается такая картина.

Главный родитель
       |
       |--Родитель 1
       |            |
       |            |--Сын 1
       |            |
       |            |_Cын-Родитель 2
       |            |      |
       |            |      |--Сын 1
       |            |      |
       |            |      |_ Сын 2
       |
       |_Родитель 2
       |            |
       |            |--Сын 1
       |            |
       |            |_Cын-Родитель 2
       |            |      |
       |            |      |--Сын 1
       |            |      |
       |            |      |_ Сын 2


Как учесть какое количество | и пробелов нужно ставить около $row[\'name\']?

Тем более в некоторых местах может быть 3 палочки и 1 пробел, а в других 3 палочки, пробел, 1 палочка. Т.е может быть чередование.

7
PHP / Карта сайта на Nested sets ?
« : 23 Августа 2005, 19:20:53 »
Уж извини, но чего-то я не вижу :)

8
PHP / Карта сайта на Nested sets ?
« : 23 Августа 2005, 17:31:29 »
Не как это сделать без картинок это я знаю.


<? 
$query="SELECT * FROM categoties ORDER BY left_key ASC"
$resultmysql_query($query); 
while(
$row mysql_fetch_array($result)) 

   echo 
str_repeat(" ",6*$row[\'level\']).$row[\'name\']."
"; 

?> 



А вот как поставить перед $row[\'name\'] соотв. картинтку (ведь это может быть  и последней категорией у родителя и т.д...) ?

9
PHP / Карта сайта на Nested sets ?
« : 23 Августа 2005, 16:56:10 »
Есть таблица categories.

CREATE TABLE categories 

  
id int(10unsigned NOT NULL auto_increment
  
name varchar(128NOT NULL default \'\', 
  left_key int(10) unsigned NOT NULL default \'0\', 
  right_key int(10) unsigned NOT NULL default \'0\', 
  level int(10) unsigned NOT NULL default \'0\', 
  parent_id int(10) unsigned NOT NULL default \'0\', 
  PRIMARY KEY (id), 
  KEY cleft (left_key,right_key,level) 
) TYPE=MyISAM; 


# Дамп данных таблицы \'categories\' 


INSERT INTO categories VALUES (162, \'ывфы\', 13, 14, 2, 158); 
INSERT INTO categories VALUES (163, \'ывыфв\', 6, 11, 3, 159); 
INSERT INTO categories VALUES (164, \'ыфвыфв\', 7, 8, 4, 163); 
INSERT INTO categories VALUES (165, \'ыфвфыв\', 19, 30, 2, 161); 
INSERT INTO categories VALUES (166, \'фывфыв\', 20, 29, 3, 165); 
INSERT INTO categories VALUES (157, \'Новости\', 2, 3, 1, 1); 
INSERT INTO categories VALUES (158, \'Статьи\', 4, 15, 1, 1); 
INSERT INTO categories VALUES (1, \'Главная\', 1, 32, 0, 0); 
INSERT INTO categories VALUES (170, \'wqe\', 22, 23, 5, 168); 
INSERT INTO categories VALUES (168, \'цйуйу\', 21, 26, 4, 166); 
INSERT INTO categories VALUES (169, \'йцуйцу\', 27, 28, 4, 166); 
INSERT INTO categories VALUES (161, \'в\', 18, 31, 1, 1); 
INSERT INTO categories VALUES (167, \'цйу\', 9, 10, 4, 163); 
INSERT INTO categories VALUES (160, \'ыфв\', 16, 17, 1, 1); 
INSERT INTO categories VALUES (159, \'2005\', 5, 12, 2, 158); 
INSERT INTO categories VALUES (171, \'wqeq\', 24, 25, 5, 168); 


Есть картинки типа

|
|--
|_.

Как при помощи всего этого сделать древовидную карту сайта (по типу http://www.unesco.ru/rus/pages/sitemap.php), всмысле как правильно поставить картинки, чтобы получилось дерево?

Страницы: [1]