Есть список категорий и у каждой категории есть потомки(они хранится в одной таблице Group(id, name, parent_id) и у каждого потомка есть в другой таблице записи Products(id, id_group, name);
Помогите составить условия.
При удаление выброной категории, если есть потомки удалять всех потомков и из другой таблице в том числе.
На сколько я понял вашу структуру, то здесь нужно рекурсивное удаление
$db->beginTransaction();
function req_delete($cat_id) use ($db) {
// удаляем связанные продукты
$db->execute("DELETE FROM Products WHERE group_id = $cat_id");
// рекурсивно удаляем детей
$children = $db->query("SELECT FROM `Group` WHERE parent_id = $cat_id");
if ($children) {
foreach ($children as $child) {
req_delete($children['id']);
}
}
// удаляем категорию
$db->execute("DELETE FROM `Group` WHERE id = $cat_id");
}
$db->commit();
Код на правильность не проверял, так что код только для передачи идеи
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости