X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Динамическое меню из БД
Azizbek_hb
Azizbek_hb
Topic Starter сообщение 4.6.2009, 18:20; Ответить: Azizbek_hb
Сообщение #1


Здравствуйте! В PHP я только навичок м надеюсь на Вашу помошь:rolleyes: Проблема в том что у меня на сайте меню создаётся из базы то есть категории и вних под категории. Структура такова:
Таблица категории_:
ID | TITLE |

Таблица суб_категории_:
ID | TITLE | SUBCAT |

Меню расположена с лева и выборку я делаю так[PHP]
<?php $sql=mysql_query("SELECT * FROM category",$link);
$row=mysql_fetch_array($sql);

do{
$id=$row['id'];
$title=$row['title'];

echo "<a ref='viewindex.php?page=$id'>$title</a>";



}
while($row=mysql_fetch_array($sql));

?>
[/PHP]

здесь всё нормально, подкатегории если вывожу на отдельную страничку таким образом [PHP]
<?php $sql3=mysql_query("SELECT * FROM subcat WHERE subcat='$page'",$link);
$myrow3=mysql_fetch_array($sql3);
do{

echo "<a class='post_link' href='view_post.php?id=".$myrow3['id']."'><strong>".$myrow3['title']."</strong></a>";


}
while($myrow3=mysql_fetch_array($sql3));
?>[/PHP]
тоже всё в норме . Но вот в чём проблема я пытаюсь сделать что бы и суб категории отображались в левой калонке каждая под своей категорией, то есть если я нажимаю к примерй ссылку карандаш то под ней отображалась её категория типа:

КАРАНДАШ
красный
синий
зелёный
РУЧКА
ТЕТРАДЬ

если ручка то

КАРАНДАШ
РУЧКА
шариковая
перо
ТЕТРАДЬ

если тетрадь то

КАРАНДАШ
РУЧКА
ТЕТРАДЬ
школьная
общая

с этой задачей спарвиться не получается, помогите пожалуйста а то у меня субкаталог выводится под каждим именим из каталога.....
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Zippovich
Zippovich
сообщение 4.6.2009, 18:48; Ответить: Zippovich
Сообщение #2


Если я Вас правильно понял, то проверяйте, если Вы в текущей категории, то выводите подкатегории для нее.

[PHP]<?php
$sql=mysql_query("SELECT * FROM category",$link);
$row=mysql_fetch_array($sql);
do {
$id=$row['id'];
$title=$row['title'];
echo "<a ref='viewindex.php?page=$id'>$title</a>";
if ($id == $page) {
$sql3=mysql_query("SELECT * FROM subcat WHERE subcat='$page'",$link);
$myrow3=mysql_fetch_array($sql3);
do{
echo "<a class='post_link' href='view_post.php?id=".$myrow3['id']."'><strong>".$myrow3['title']."</strong></a>";
}
while($myrow3=mysql_fetch_array($sql3));
}
}
while($row=mysql_fetch_array($sql));
?>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ворон
Ворон
сообщение 4.6.2009, 21:12; Ответить: Ворон
Сообщение #3


по предложенному решению есть два замечания:

1. конструкцию
[php]fetch();
do{
...
} while ( fetch() )[/php]заменить на
[php]while ( fetch() ){
...
}[/php]чтобы избежать проблем с пустой подкатегорией.

2. вместо двух запросов к БД использовать только один, связав две таблицы.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Azizbek_hb
Azizbek_hb
Topic Starter сообщение 5.6.2009, 7:47; Ответить: Azizbek_hb
Сообщение #4


(Ворон @ 5.6.2009, 00:12) *
по предложенному решению есть два замечания:

1. конструкцию
[PHP]fetch();
do{
...
} while ( fetch() )[/php]заменить на
[php]while ( fetch(fetch) ){
...
}[/php]чтобы избежать проблем с пустой подкатегорией.

2. вместо двух запросов к БД использовать только один, связав две таблицы.



Если при
[php]do{
/*-----------------*/
while(fetch);
[/PHP]

у меня выводит

КАТЕГОРИЯ № 1
КАТЕГОРИЯ №2
КАТЕГОРИЯ №3
КАТЕГОРИЯ №4

то после [PHP]
while (){

/*----------------*/
}
[/PHP]

выдаёт
КАТЕГОРИЯ №2
КАТЕГОРИЯ №3
КАТЕГОРИЯ №4
а куда девается КАТЕГОРИЯ № 1 я не понял? Хотя проблема с пустыми категориями отподает и ещё если я сделаю[PHP]
$sql=mysql_query("SELECT * FROM category UNION SELECT * FROM subcat WHERE subcat='$page'",$link);
[/PHP]

то как мне делать из неё выборку ведь в обоих таблицах существует ID, TITLE, ?

PS: СПАСИБО Zippovich, это было именно то что я искал:)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ворон
Ворон
сообщение 5.6.2009, 12:33; Ответить: Ворон
Сообщение #5


1.
а куда девается КАТЕГОРИЯ № 1 я не понял?

это все от невнимательности.
fetch вне цикла убрать забыли.

2.
представленный вами запрос Правильно работать не будет.

3.
то как мне делать из неё выборку ведь в обоих таблицах существует ID, TITLE

а как вы их сейчас связываете? по subcat'у вашему
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
echo2010
echo2010
сообщение 21.3.2010, 23:49; Ответить: echo2010
Сообщение #6


Добрый вечер!

Проблема аналогичная. Есть меню. Выводится из базы в виде списка. Нужно что бы меню было вида:

КАРАНДАШ
красный
синий
зелёный
РУЧКА
ТЕТРАДЬ

если ручка то

КАРАНДАШ

РУЧКА
шариковая
перо
ТЕТРАДЬ

если тетрадь то

КАРАНДАШ
РУЧКА

ТЕТРАДЬ
школьная
общая


Есть код:
[PHP] <!-- Меню каталога /-->
<div id="catalog_menu">
{defun name=categories_tree categories=$categories}
{if $categories}
<ul class="catalog_menu">
{foreach item=c from=$categories}
{if $category->category_id != $c->category_id}
<li><a href='catalog/{$c->url}' tooltip='category' category_id='{$c->category_id}'>{$c->name}</a></li>
{else}
<li><span tooltip='category' category_id='{$c->category_id}'>{$c->name}</span></li>
{/if}
{*if in_array($category->category_id, $c->subcats_ids)*}
{fun name=categories_tree categories=$c->subcategories}
{*/if*}
{/foreach}
</ul>
{/if}
{/defun}
</div>
<!-- Меню каталога #End /--> [/PHP]

Помогите пожалуйста, как нужно исправить код что бы получилось меню такого вида?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ChaoS_hb
ChaoS_hb
сообщение 10.8.2010, 10:13; Ответить: ChaoS_hb
Сообщение #7


Драсте люди! У меня проблема такая: есть база данных в ней таблица rubr в ней хранятся записи причем у каждой есть поля parent и num где в поле parent указан родитель соответсвуешей записи соответственно а num - номер записи, мне нужно вывести меню такого же вида как и выше:

КАРАНДАШ
красный
синий
зелёный
РУЧКА
ТЕТРАДЬ

если ручка то

КАРАНДАШ
РУЧКА
шариковая
перо
ТЕТРАДЬ

если тетрадь то

КАРАНДАШ
РУЧКА
ТЕТРАДЬ
школьная
общая

где ТЕТРАДЬ - родитель записей школьная и общая ну и т.д.

Подскажите пож-то как это сделать, а то я уже все форумы перерыл и ничего не нашол а мне надо это очень срочно

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПеренести меню
1 Викторио_mw 1468 28.8.2018, 0:10
автор: TimurR
Открытая тема (нет новых ответов) Необходимо разрезать и установить Меню для группы ВКонтакте
2 boltuk 3416 4.12.2017, 14:44
автор: tezoro
Открытая тема (нет новых ответов) Помогите с меню - переделать в выпадающее
1 lepota 1130 4.12.2017, 13:29
автор: yury_mw
Открытая тема (нет новых ответов) Слайдер под меню
0 Olya_Poy 4646 29.11.2017, 11:09
автор: -garmoni-
Открытая тема (нет новых ответов) На разных разрешениях меню выглядит по разному
0 SPiar 4817 28.9.2017, 17:45
автор: -korotkov-


 



RSS Текстовая версия Сейчас: 24.4.2024, 19:43
Дизайн