function fixChildren($parent, $newLevel, $newParent) { global $smcFunc; // Grab all children of $parent... $result = $smcFunc['db_query']('', ' SELECT id_board FROM {db_prefix}boards WHERE id_parent = {int:parent_board}', array('parent_board' => $parent)); $children = array(); while ($row = $smcFunc['db_fetch_assoc']($result)) { $children[] = $row['id_board']; } $smcFunc['db_free_result']($result); // ...and set it to a new parent and child_level. $smcFunc['db_query']('', ' UPDATE {db_prefix}boards SET id_parent = {int:new_parent}, child_level = {int:new_child_level} WHERE id_parent = {int:parent_board}', array('new_parent' => $newParent, 'new_child_level' => $newLevel, 'parent_board' => $parent)); // Recursively fix the children of the children. foreach ($children as $child) { fixChildren($child, $newLevel + 1, $child); } }
function fixChildren($parent, $newLevel, $newParent) { global $db_prefix; // Grab all children of $parent... $result = db_query("\n\t\tSELECT ID_BOARD\n\t\tFROM {$db_prefix}boards\n\t\tWHERE ID_PARENT = {$parent}", __FILE__, __LINE__); $children = array(); while ($row = mysql_fetch_assoc($result)) { $children[] = $row['ID_BOARD']; } mysql_free_result($result); // ...and set it to a new parent and childLevel. db_query("\n\t\tUPDATE {$db_prefix}boards\n\t\tSET ID_PARENT = {$newParent}, childLevel = {$newLevel}\n\t\tWHERE ID_PARENT = {$parent}\n\t\tLIMIT " . count($children), __FILE__, __LINE__); // Recursively fix the children of the children. foreach ($children as $child) { fixChildren($child, $newLevel + 1, $child); } }