powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Формирование массива, Массив по ключу?
2 сообщений из 2, страница 1 из 1
Формирование массива, Массив по ключу?
    #37951313
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запутался я, маялся, маялся, но форум не для того создан (чтобы я так маялся). Ладно, поехали:

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

Что нужно.. Нужно взять их из бд в массив (ассоц.) , для того чтобы вывести стандартно через foreach , т.е. тут вложенный foreach должен быть. Я использую Kohana 3.2, но мне кажется это не существенно, мне главное понять как происходит формирование и вывод такого дела.

Т.е. должно получится что-то вроде:

авторSupercategory 1
Category 1
Category 2
Category 3
Supercategory 2
Category 1
Category 2
Category 3
и т.д.


п.с. Фреймворк это для вариантов решения этой задачи на Query Builder или ORM я указал. А так просто пока сам принцип хочу понять.
...
Рейтинг: 0 / 0
Формирование массива, Массив по ключу?
    #37951582
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Худо-бедно я решил эту задачу вот так:

Исп. Kohana 3.2, так что те кто ни в теме не удивляйтесь запросам к БД, в итоге они все равно возвращают массив.

А хочу сделать вот что: Выбрать суперкатегории по ключу, а потом уже по полученным ключам из суперкатегорий выбрать категории. Одним словом это массив 2-ой вложенности.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
// берем суперкатегории по language_id
        $supercategories = DB::select()->from('supercategories')
            ->where('language_id','=',$this->language_id)
            ->execute()->as_array();

        $data = array();

        foreach ($supercategories as $supercategory) {

            $item['supercategory'] = $supercategory;

            // возьмем категорию по language_id и supercategory_id 
            $categories = DB::select()->from('categories')
                                      ->where('language_id','=',$this->language_id)
                                      ->where('supercategory_id','=',$supercategory["id"])
                                      ->execute()->as_array();
            // вывод суперкатегории                          
            echo "-".$supercategory["name"]."
";

            // получаем категорию                         
            foreach ($categories as $category) {

                $item['categories'][] = $category;

                // вывод категории
                echo "--".$category["name"]."
";

            }

            $data[] = $item;

        }
        //--------------------
        // вывод данных
        echo "<font color='red'>";

        foreach ($data as $s){

            // вывод суперкатегории
            echo "-".$s["supercategory"]["name"]."
";

            foreach ($s["categories"] as $category) {
                // вывод категории
                echo "--".$category["name"]."
";
            }
        }
        echo "</font>";





Что в итоге? В итоге вот что:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
-Веб
--jQuery
--php
-Спорт
--Футбол

-Веб
--jQuery
--php
-Спорт
--jQuery
--php
--Футбол




Т.е. 1-ый раз срабатывает замечательно, тогда когда делаю выборку и сразу вывожу, а второй раз (красным) уже портятся данные, что может быть не так?

P.S. форум брейки словил в кавычках.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Формирование массива, Массив по ключу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]