powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Навигация. Надеюсь на помощь
20 сообщений из 20, страница 1 из 1
Навигация. Надеюсь на помощь
    #37951883
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Нашел вариант древовидной навигации, переделать под себя сумел, но добавить никак не получается, надеюсь на вашу помощь. Для построения дерева на php использую базу данных следующего вида, это пример с сайта, у меня только названия иные, но это не важно.
Вот база:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
INSERT INTO `categories` (`id`, `title`, `cat`) VALUES
(1, 'Главная', 0),
(2, 'Услуги', 0),
(3, 'Наши работы', 0),
(4, 'Создание интернет магазина', 2),
(5, 'Создание сайта', 2),
(6, 'Продвижение сайта', 2),
(13, 'Продвижение по позициям', 6),
(7, 'Тариф «Оптимальный»', 4),
(8, 'Тариф «Расширенный»', 4),
(9, 'Тариф «Максимальный»', 4),
(10, 'Сайт визитка', 5),
(11, 'Фирменный сайт', 5),
(12, 'Корпоративный сайт', 5),
(14, 'Продвижение по трафику', 6),
(15, 'Сроки и гарантии', 6),
(16, 'Создание интернет магазина', 3),
(17, 'Создание сайта', 3);



Здесь код, потом вопрос:
Код: 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.
function getCategory() { 
    $query = mysql_query("SELECT * FROM categories"); 
    $result = array(); 
    while ($row = mysql_fetch_array($query)) { 
        $result[$row["cat"]][] = $row; 
    } 
    return $result; 
} 

//В переменную $category_arr записываем все категории 
$category_arr = getCategory(); 

/** 
 * Вывод дерева 
 * @param Integer $parent_id - id-родителя 
 * @param Integer $level - уровень вложености 
 */
function outTree($cat, $level) { 
    global $category_arr; //Делаем переменную $category_arr видимой в функции 
    if (isset($category_arr[$cat])) { //Если категория с таким $cat существует 
        foreach ($category_arr[$cat] as $value) { //Обходим 
             /** 
             * Выводим категорию  
             *  $level * 25 - отступ, $level - хранит текущий уровень вложености (0,1,2..) 
             */
            echo "<div style=\"margin-left:" . ($level * 25) . "px;\">" . $value["title"] . "</div>"; 
            $level = $level + 1; //Увеличиваем уровень вложености 
            //Рекурсивно вызываем эту же функцию, но с новым $cat и $level 
            outTree($value["id"], $level); 
            $level = $level - 1; //Уменьшаем уровень вложености 
        } 
    } 
} 
outTree(0, 0);



Как сделать так чтобы для родителя рубрики выводился блок DIV с id, чтобы потом ему задать стили, H1 и ...... Уже сижу несколько дней. Я, новичок, поэтому не могу разобраться с такой проблемой. Буду признателен всем в помощи.
Видел у вас на форуме сообщение от sergkarpenko в теме http://www.sql.ru/forum/actualthread.aspx?tid=441309 что-то типа того:

.............
рекурсия при двухуровневом дереве?

самое простое, что пишется, не думая:
select t1.name as level1, t2.name as level2 from category t1
left join category t2 on (t1.id = t2.parent_id)
where t1.parent_id = 0
Может можно как-то так сделать?
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37951903
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37952366
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, дерево я уже нашол, но его надо трансформировать, что не получается
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37952434
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, пока писал вам сообщение, то понял как сделать))
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37952548
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, подскажите пожалуйста почему не работает такой код:
Код: php
1.
2.
3.
4.
$result2 = mysql_query("SELECT * FROM categories WHERE cat='0' AS $cat1 OR cat>='1' AS $cat2",$db); 
$myrow=mysql_fetch_array($result2[$cat1][$cat2]);
echo $myrow($cat1['title']);
echo $myrow($cat2['title']);


Что здесь исправить?
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37952588
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и ошибка конечо же звучит как "н не хочу я!!!"
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37952590
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boichukvd,

... AS $cat1 ...
а это что такое?
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37952728
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
r u, выбрать все категории с categories где cat='0' и занести их в переменную $cat1, а те данные где cat>='1' занести в переменную $cat2
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37952740
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boichukvdr u, выбрать все категории с categories где cat='0' и занести их в переменную $cat1, а те данные где cat>='1' занести в переменную $cat2
ты сделал мой день.
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37952801
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, то есть
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37952807
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, вы можете что-то подсказать или вы не в теме?
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37953432
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boichukvdScareCrow, то есть
то есть вы не правильно понимаете SQL
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37953532
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett, ну так я и спрашиваю где ошибка, знаком с php и sql несколько недель, думаю можно понять что не разбираюсь пока
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37953536
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett, Вот пример с сайта:
Использование скалярных выражений и переименований колонок в запросах (ключевое слово AS…):

SELECT
TOVAR.TNAME,
TOVAR.KOL,
TOVAR.PRICE,
"=" AS EQU,
TOVAR.KOL*TOVAR.PRICE AS SUMMA
FROM TOVAR;

Значит можно использовать "AS", как и переменные в запросах, но запрос создан неправильно, а подсказать некому, только умничаете, толку 0, как и с моего запроса
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37953540
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы не захотите внимать в SQL, то писать на нем самостоятельно не получится.
Сейчас вместо того, чтобы разобраться в проблеме и решить ее, вы ждете готовое решение.
По сабжу:
Для чего нужен AS вы поняли, но то что вы написали - я даже слов не нахожу, каким образом данные должны оказаться в переменных $cat ?
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37953543
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переменной $cat1 и $cat2 вы что-то присваивали? Нет, а откуда там возьмутся данные?
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37953562
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett, ну да знаю что ничего не знаю... хотел занести в переменную cat1 все данные где cat=0... ну ладно будет время что-то придумаю, извините за тупые вопросы
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37953628
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boichukvd,

Вот нормальная статья для начинающих по древовидным структурам (в смысле всяких категорий с подкатегориями) .
Код простейший - как раз для новичков. Там кстати и тэги для оформления легко меняются.
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37953660
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boichukvdr u, выбрать все категории с categories где cat='0' и занести их в переменную $cat1, а те данные где cat>='1' занести в переменную $cat2

после WHERE использовать AS нельзя. по крайней мере так как это делате вы.
все что вам нужно получить из запроса перечисляйте после SELECT.
это самые основы sql. рекомендую вам для начала почитать теорию. здесь вам это разжевывать никто не будет.
...
Рейтинг: 0 / 0
Навигация. Надеюсь на помощь
    #37954048
boichukvd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
r u, спасибо я уже прочитал что после WHERE использовать AS нельзя)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Навигация. Надеюсь на помощь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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