Запрос на удаления

149
13 ноября 2018, 10:50

Есть список категорий и у каждой категории есть потомки(они хранится в одной таблице Group(id, name, parent_id) и у каждого потомка есть в другой таблице записи Products(id, id_group, name);

Помогите составить условия.

При удаление выброной категории, если есть потомки удалять всех потомков и из другой таблице в том числе.

Answer 1

На сколько я понял вашу структуру, то здесь нужно рекурсивное удаление

$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();

Код на правильность не проверял, так что код только для передачи идеи

READ ALSO
Масштаб на мобилке

Масштаб на мобилке

На сайте у body и некоторых элементов (например фиксированное меню сверху) в CSS установлено свойство min-height: 750px;При просмотре с мобильного изначально...

195
Передача данных при клике Vue.js

Передача данных при клике Vue.js

Всем привет,нужна помощь,как при клике на карточку слева,отображать данные этой карточки в окне справа(название,заемщик и тд) Объясните пожалуйста)...

201
Исправить мобильное меню

Исправить мобильное меню

Помогите поправить мобильное менюЕсть меню, у которого по нажатию по кнопке "гамбургер" происходит смещение блока контента вправо и тем самым...

162
Как реализовать hover?

Как реализовать hover?

может кто видел, как реализовать такой hover эффект? Или подскажет-поможет реализоватьтык

168