Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Навигация. Надеюсь на помощь / 20 сообщений из 20, страница 1 из 1
11.09.2012, 01:26:05
    #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
11.09.2012, 03:08:25
    #37951903
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
...
Рейтинг: 0 / 0
11.09.2012, 12:40:06
    #37952366
boichukvd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
ScareCrow, дерево я уже нашол, но его надо трансформировать, что не получается
...
Рейтинг: 0 / 0
11.09.2012, 13:03:00
    #37952434
boichukvd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
ScareCrow, пока писал вам сообщение, то понял как сделать))
...
Рейтинг: 0 / 0
11.09.2012, 13:44:14
    #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
11.09.2012, 14:01:50
    #37952588
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
и ошибка конечо же звучит как "н не хочу я!!!"
...
Рейтинг: 0 / 0
11.09.2012, 14:02:27
    #37952590
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
boichukvd,

... AS $cat1 ...
а это что такое?
...
Рейтинг: 0 / 0
11.09.2012, 15:07:29
    #37952728
boichukvd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
r u, выбрать все категории с categories где cat='0' и занести их в переменную $cat1, а те данные где cat>='1' занести в переменную $cat2
...
Рейтинг: 0 / 0
11.09.2012, 15:13:16
    #37952740
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
boichukvdr u, выбрать все категории с categories где cat='0' и занести их в переменную $cat1, а те данные где cat>='1' занести в переменную $cat2
ты сделал мой день.
...
Рейтинг: 0 / 0
11.09.2012, 15:35:44
    #37952801
boichukvd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
ScareCrow, то есть
...
Рейтинг: 0 / 0
11.09.2012, 15:37:02
    #37952807
boichukvd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
ScareCrow, вы можете что-то подсказать или вы не в теме?
...
Рейтинг: 0 / 0
11.09.2012, 21:33:10
    #37953432
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
boichukvdScareCrow, то есть
то есть вы не правильно понимаете SQL
...
Рейтинг: 0 / 0
11.09.2012, 23:17:57
    #37953532
boichukvd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
Hett, ну так я и спрашиваю где ошибка, знаком с php и sql несколько недель, думаю можно понять что не разбираюсь пока
...
Рейтинг: 0 / 0
11.09.2012, 23:23:16
    #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
11.09.2012, 23:27:34
    #37953540
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
Если вы не захотите внимать в SQL, то писать на нем самостоятельно не получится.
Сейчас вместо того, чтобы разобраться в проблеме и решить ее, вы ждете готовое решение.
По сабжу:
Для чего нужен AS вы поняли, но то что вы написали - я даже слов не нахожу, каким образом данные должны оказаться в переменных $cat ?
...
Рейтинг: 0 / 0
11.09.2012, 23:28:31
    #37953543
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
Переменной $cat1 и $cat2 вы что-то присваивали? Нет, а откуда там возьмутся данные?
...
Рейтинг: 0 / 0
11.09.2012, 23:44:55
    #37953562
boichukvd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
Hett, ну да знаю что ничего не знаю... хотел занести в переменную cat1 все данные где cat=0... ну ладно будет время что-то придумаю, извините за тупые вопросы
...
Рейтинг: 0 / 0
12.09.2012, 01:32:54
    #37953628
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация. Надеюсь на помощь
boichukvd,

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

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


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