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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка целостности категории

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
lans8097
Отправлено: 07 Августа, 2013 - 02:09:11
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Доброго времени суток форумчани.
Возникла вот такая дилемма.
Есть таблица с категориями без ограничений по вложенности.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. DROP TABLE IF EXISTS `category`;
  3. CREATE TABLE IF NOT EXISTS `category` (
  4.   `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  5.   `sweat_category` INT(10) UNSIGNED DEFAULT NULL,
  6.   `name` varchar(255) NOT NULL,
  7.   PRIMARY KEY (`id`),
  8.   INDEX `ixCategoryName` (`name`),
  9.   INDEX `ixSweatCategory` (`sweat_category`)
  10. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
  11.  
  12. /* Дамп */
  13. INSERT INTO `category2` (`sweat_category`,`name`) VALUES
  14. (NULL,'Категория 1') ,
  15. (1,'под категория категория 2') ,
  16. (2,'под категория категория 3') ,
  17. (NULL,'под категория категория 3');
  18.  


Задача:
Есть запрос Категория 1/под категория категория 2/под категория категория 3
Нужно проверить валидность третей категории с учётом её предков. и выдать данные третей категории.
Как написать такой запрос на примере моей таблицы или может как-то переделать таблицу

(Отредактировано автором: 07 Августа, 2013 - 02:10:02)

 
 Top
DeepVarvar Супермодератор
Отправлено: 07 Августа, 2013 - 02:18:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Что значит фраза "валидность категории"?
 
 Top
lans8097
Отправлено: 07 Августа, 2013 - 02:19:13
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




DeepVarvar пишет:
Что значит фраза "валидность категории"?

http://sqlfiddle[dot]com/#!2/63726/4

Как видно тут пришло 2 результата а должен прийти только родительский

(Отредактировано автором: 07 Августа, 2013 - 02:21:22)

 
 Top
DeepVarvar Супермодератор
Отправлено: 07 Августа, 2013 - 02:21:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Я не нашел ответа по ссылке.
 
 Top
lans8097
Отправлено: 07 Августа, 2013 - 02:23:40
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




DeepVarvar пишет:
Я не нашел ответа по ссылке.

Её форум почему-то изменяет =)
http://sqlfiddle[dot]com/#!2/63726/4
 
 Top
DeepVarvar Супермодератор
Отправлено: 07 Августа, 2013 - 02:26:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Я ссылку открыл, но ответа на свой вопрос там не нашел.
 
 Top
Vaio
Отправлено: 07 Августа, 2013 - 02:27:03
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Пример: site.ru/cat1/cat2/cat3
Нужно проверить, есть ли категория cat3 и при этом есть ли она наследником cat2 и cat2 наследник cat1.
 
 Top
DeepVarvar Супермодератор
Отправлено: 07 Августа, 2013 - 02:29:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Vaio - пусть автор скажет
 
 Top
lans8097
Отправлено: 07 Августа, 2013 - 02:31:32
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




DeepVarvar пишет:
Vaio - пусть автор скажет

Да он более точно описал маю мысль )
 
 Top
DeepVarvar Супермодератор
Отправлено: 07 Августа, 2013 - 02:34:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Тогда мысль неверная, категории тут ни при чем.
Однозначно переделывать.
 
 Top
lans8097
Отправлено: 07 Августа, 2013 - 02:38:39
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




DeepVarvar пишет:
Тогда мысль неверная, категории тут ни при чем.
Однозначно переделывать.


Как не причём ? а как-же тогда делать категории ?
Просто тут одна загвоздка это выборка по имени
 
 Top
Vaio
Отправлено: 08 Августа, 2013 - 22:11:03
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Не подскажите как тогда правильно сделать?
 
 Top
caballero
Отправлено: 08 Августа, 2013 - 22:23:16
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




че то на наблюдаю где там связь между категориями
как вы вообще понимаете что одна родительская по отношению к другой


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Vaio
Отправлено: 08 Августа, 2013 - 22:38:35
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




sweat_category - id родителя
 
 Top
caballero
Отправлено: 08 Августа, 2013 - 22:45:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




тогда у вас так какой то странный insert

в любом случае - статей про хранение иерархических данных в БД в инете полно.
Можно использовать nested sets или materialized path
На крайняк можно просто выгрести все категории в массив и пройтись вложенным циклом


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB