Удаление ветки дерева.
ID Name Parent_ID
1 name 0
2 name1 1
...
где ID уникален а Parent_ID это связь с родителем, так вот можно сделать SQL запрос чтоб удалить всю ветку, а если нельзя то как можно это сделать наиболее хорошо...
я так понял
Parent_ID хранит ID "родителя"
и зная Parent_ID тебе нужно удалить все связанные строки?
WHERE (ID='5' OR Parent_ID='5')
так не работает чтоли ?
Цитата:
Originally posted by Alone
хм...
я так понял
Parent_ID хранит ID "родителя"
и зная Parent_ID тебе нужно удалить все связанные строки?
WHERE (ID='5' OR Parent_ID='5')
так не работает чтоли ?
хм...
я так понял
Parent_ID хранит ID "родителя"
и зная Parent_ID тебе нужно удалить все связанные строки?
WHERE (ID='5' OR Parent_ID='5')
так не работает чтоли ?
Так то работает ... только потомки тех у кого Parent_ID='5' остануться...
Я решил проблему...
Код:
function RemoveTree($idd)
{
$query = "SELECT * FROM levels WHERE parent=".$idd;
//echo $query;
$result = mysql_query($query) or die ("не могу взять из базы del");
while(($row = mysql_fetch_array($result)) != false)
{
$q = "DELETE FROM levels WHERE id=".$row["id"];
$r = mysql_query($q) or die ("Не могу удалить");
RemoveTree($row["id"]);
}
}
{
$query = "SELECT * FROM levels WHERE parent=".$idd;
//echo $query;
$result = mysql_query($query) or die ("не могу взять из базы del");
while(($row = mysql_fetch_array($result)) != false)
{
$q = "DELETE FROM levels WHERE id=".$row["id"];
$r = mysql_query($q) or die ("Не могу удалить");
RemoveTree($row["id"]);
}
}