Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2013, 17:16   #1
Gefo
Форумчанин
 
Регистрация: 04.04.2012
Сообщений: 185
По умолчанию Составить рекурсию на 'возрастание

Подскажите, вот достать id корневой категории знаю как сделать, по скольку есть на что ориентироваться, к примеру на нумерацию суб категорий у гл =0. А вот как сделать наоборот, достать суб категорию с наибольшим id. Подскажите рекурсию.
Есть массив, массив всех категорий.
Через глобальую переменную вытаскиваем что нужно.
PHP код:
$cat[id категории]['тут поле (sub_id)'
Вот подскажите, натолкните на мысль. Не могу сообразить
Gefo вне форума Ответить с цитированием
Старый 21.01.2013, 18:49   #2
masax
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 248
По умолчанию

зачем тебе реккурсия?
обычного цикла достаточно
Код:
foreach ($cat[id категории] as $key=>$val)
{
 // $key - собственно те самые ключи из которых нужно выбрать максимальный
 ...
}
а вообще обычно категории работают с БД
и проще решить такую задачу запросом в БД
Контакты
skype, почта: bm@kwax.ru
masax вне форума Ответить с цитированием
Старый 21.01.2013, 21:01   #3
Gefo
Форумчанин
 
Регистрация: 04.04.2012
Сообщений: 185
По умолчанию

Спс. Вот , немного не то. Я знаю id гл категории и если я подставлю
PHP код:
 foreach ($cat[id гл категории]) 
То вытащу данные, только 1-ой категории. Никакой рекурсии не будит.
Как можно запросом решить?

К примеру мне, нужно втащить id=6. Когда есть только цифра 3.
PHP код:
id  ub_id
3    0
4    3
5    4
6    4
7    0 
Я могу добавить еще 1 поле и тогда можно будит 1 запросом выяснить. Но не хотелось городить еще заборы, потом запутаюсь и тп.
Если сделать рекурсией, так можно решить 2 проблемы.
-Достану макс id.
-При перечислении или при проходе по дереву категории до конечной. Можно собрать все id категории и при удалении гл категории удалить и все суб категории.

Последний раз редактировалось Gefo; 21.01.2013 в 21:26.
Gefo вне форума Ответить с цитированием
Старый 22.01.2013, 11:16   #4
masax
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 248
По умолчанию

Цитата:
К примеру мне, нужно втащить id=6. Когда есть только цифра 3.
а где они у тебя связаны друг с другом?
Контакты
skype, почта: bm@kwax.ru
masax вне форума Ответить с цитированием
Старый 22.01.2013, 15:22   #5
Gefo
Форумчанин
 
Регистрация: 04.04.2012
Сообщений: 185
По умолчанию

Да ошибся. Тут подумал, рекурсия не будит решением. Категория с макс id, может находиться как и в 1 суб категории так и во второй, а нужно в конец добавить строчку гл категории. Тут думаю нужно через построения дерева категории, узнавать конечную sub категорию. Спс.
Gefo вне форума Ответить с цитированием
Старый 22.01.2013, 17:24   #6
Gefo
Форумчанин
 
Регистрация: 04.04.2012
Сообщений: 185
По умолчанию

Вообщем собираю, проставляю запятые и через rtrim удаляю запятую с конца. Получаю строчку, как я понял получаю так:
'134,138,177,176'

Подскажите как из строчки вытащить 176. Как я понял, тут нужно как то ориентироваться по последней запятой из строчки. Вытащить то что после посл запятой. Помогите плиз.

Последний раз редактировалось Gefo; 22.01.2013 в 17:26.
Gefo вне форума Ответить с цитированием
Старый 22.01.2013, 17:46   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Комбинируй substr и strrpos.
Или используй explode, а потом end.
Andkorol вне форума Ответить с цитированием
Старый 22.01.2013, 19:09   #8
Gefo
Форумчанин
 
Регистрация: 04.04.2012
Сообщений: 185
По умолчанию

Спасибо. Столько кода лишнего убрал.
Gefo вне форума Ответить с цитированием
Старый 22.01.2013, 19:27   #9
Gefo
Форумчанин
 
Регистрация: 04.04.2012
Сообщений: 185
По умолчанию

Не подскажите как попроще можно прописать:
$('.CT'+result.delet+'.catop'+resul t.delet)
Как прописать так, чтоб "+result.delet" было 1 раз прописано... Спс.
Gefo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на рекурсию андрей.... Помощь студентам 2 21.12.2012 17:29
4 Задачи на рекурсию Toni Milano Помощь студентам 2 27.12.2011 19:02
Задача на рекурсию Rusl92 Помощь студентам 1 13.01.2011 22:36
На печать выдать новую строку в которой все слова расположены в порядке возрастание длин слов Siluet Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2008 00:12