Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как удалить все подкатегории категории и все товары всех подкатегорий ?
Форумы портала PHP.SU » » Вопросы новичков » Как удалить все подкатегории категории и все товары всех подкатегорий ?

Страниц (1): [1]
 

1. optsar - 28 Сентября, 2015 - 22:15:32 - перейти к сообщению
Имею вот такой массив, и в подкатегориях могут быть товары,
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.     [8] => Array
  3.         (
  4.             [brand_id] => 8
  5.             [brand_name] => Samsung
  6.             [parent_id] => 0
  7.             [childs] => Array
  8.                 (
  9.                     [21] => Array
  10.                         (
  11.                             [brand_id] => 21
  12.                             [brand_name] => Моноблок
  13.                             [parent_id] => 8
  14.                             [childs] => Array
  15.                                 (
  16.                                     [7] => Array
  17.                                         (
  18.                                             [brand_id] => 7
  19.                                             [brand_name] => Моноблок
  20.                                             [parent_id] => 21
  21.                                             [childs] => Array
  22.                                                 (
  23.                                                     [5] => Array
  24.                                                         (
  25.                                                             [brand_id] => 5
  26.                                                             [brand_name] => Сенсоры
  27.                                                             [parent_id] => 7
  28.                                                         )
  29.  
  30.                                                 )
  31.  
  32.                                         )
  33.  
  34.                                 )
  35.  
  36.                         )
  37.  
  38.                 )
  39.  
  40.         )



вот что я смог сделать

CODE (htmlphp):
скопировать код в буфер обмена
  1. $brand_id = (int)$_GET['brand_id'];  // id удаляемой категории
  2.  
  3. mysql_query("DELETE FROM goods WHERE goods_brandid = $brand_id"); // Удаляем товары категории
  4.  
  5. mysql_query("DELETE FROM brands WHERE parent_id = $brand_id"); // Удаляем подкатегории
  6.  
  7. mysql_query("DELETE FROM brands WHERE brand_id = $brand_id"); // Удаляем категорию
  8.  



удаляются только категория [8] => Array и подкатегории этой категории [21] => Array и товары категории категории [8] => Array

глубже мозгов не хватает как сделать.
Подскажите пожалуйста
2. sarmat - 29 Сентября, 2015 - 19:08:01 - перейти к сообщению
товары и категории хранятся в базе данных? если да то просто поставь флажки кним и укажи рефы, я обычно так создаю структуру в бд...

id - name - tupe(тип записи) - ref(к какой категории пренадлежит файл или папка)
а потом при удалении какой нибудь категории, проверяю наличие в ней папок и файлов если они есть удаляю их потом уже категорию. так сервер выполняет меньше вычислительных действий и кода меньше в разы и удаление крупных категорий с милионнами записей проходит без кряков. Особенно хорошо эта тема помогает когда к записям прилогаются по нескольку скринов и превьюшек кним плюс комы и кэш определенных частей страницы ну это мое решение проблемы, возможно можно сделать более эфективней Растерялся
3. optsar - 29 Сентября, 2015 - 20:14:16 - перейти к сообщению
Да в базе, Из ответа ни чего я не понял, попробую по другому спросить
brand_id =3 а parent_id=4 из-за не правильного удаления

как мне найти все такие parent_id которые не принадлежат ни к какому brand_id

CODE (htmlphp):
скопировать код в буфер обмена
  1. brand_id        brand_name      parent_id
  2.     1              Alcatel                  0
  3.     2             Ericsson                  1
  4.     3                LG             4
4. lastdays - 29 Сентября, 2015 - 20:35:34 - перейти к сообщению
Делать подзапрос при удалении, не найден айди раздела товара - удалить товар.

п.с. я правильно понял, остались товары в несуществующих категориях ?
5. optsar - 29 Сентября, 2015 - 20:38:01 - перейти к сообщению
Да, спасибо всем за исчерпывающие ответы!

 

Powered by ExBB FM 1.0 RC1