|
|
|
| Есть дерево папок с обчной структурой id, name, parent, pub
Если я меняю в одной папке ячейку pub на 0 то нужно поменять во всех остальных дочерних папках все pub на 0 и вто же время поменять pub у дочерних папок дочерних папок
Как такое осушествить? Любым методом. | |
|
|
|
|
|
|
|
для: Alexx
(25.06.2006 в 14:01)
| | Есть возможность использовать таблицы InnoDB, поддерживающие каскадное обновление по вторичному ключу? | |
|
|
|
|
|
|
|
для: cheops
(25.06.2006 в 14:32)
| | Тип таблицы MyISAM | |
|
|
|
|
|
|
|
для: Alexx
(25.06.2006 в 15:06)
| | Тогда придётся программно рекурсивно спускаться. | |
|
|
|
|
|
|
|
для: cheops
(25.06.2006 в 17:55)
| | спасибо | |
|
|
|
|
|
|
|
для: cheops
(25.06.2006 в 17:55)
| | Спускаться следует не рекурсивно, а итеративно. Число итераций равно высоте дерева. | |
|
|
|
|
|
|
|
для: Alexx
(25.06.2006 в 15:06)
| |
<?php
function ggn($id,$pub)
{
$result = mysql_query("SELECT * FROM tbl WHERE parent = id");
if(!$result) exit("Ошибка ggn");
if(mysql_num_rows($result) > 0)
{
while($table = mysql_fetch_array($result))
{
mysql_query("UPDATE tbl SET pub = $pub WHERE id = $table[id]");
ggn($table['id'],$pub);
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Гусь ГыГыН
(25.06.2006 в 18:30)
| | СПС Приеду домой протестирую ;) | |
|
|
|