Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Меню с одной вложеностью.
 
 автор: sparhok13   (26.06.2008 в 00:13)   письмо автору
 
 

Подскажите, пожалуйста, как заставить оставаться на месте
пункты второго уровня, когда я на них кликаю?

Меню вида:

Категория 1
-Подкатегория 1
-Подкатегория 1.1
Категория 2
-Подкатегория 2
-Подкатегория 2.2
.........................
........................

БД: id_cat, name, parent_id.


<?
include 'conf.php';

MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");
@
mysql_select_db("$dbName") or die("Не могу выбрать базу данных "); 


function 
show_cat($parent_id 0$open_cat 0)
{


     
$result  =  mysql_query('SELECT * FROM category WHERE parent_id = ' $parent_id);

     while (
$row mysql_fetch_assoc($result)) {

              echo 
'<a href="?open_cat=' $row['id_cat'] . '&sub=' $row['parent_id'] . '">' $row['name'] . '</a><br />';
          
              if (
$open_cat && $open_cat == $row['id_cat']) 
              
             {    
                  
show_cat($row['id_cat']);
                  
             }
             
             
}
}

show_cat(0, (int) $_GET['open_cat']);
?>


Спасибо.

   
 
 автор: sparhok13   (26.06.2008 в 21:48)   письмо автору
 
   для: sparhok13   (26.06.2008 в 00:13)
 

Неужели никто не может помочь? (((

   
 
 автор: sparhok13   (30.06.2008 в 00:38)   письмо автору
 
   для: sparhok13   (26.06.2008 в 21:48)
 

Неужели никто не может помочь? (((

   
 
 автор: sparhok13   (30.06.2008 в 00:40)   письмо автору
 
   для: sparhok13   (30.06.2008 в 00:38)
 

ПАМАГИТЕЕЕ КТО НИБУДЬ С ЭТМ МЕНЮ.... :( :( :(

   
 
 автор: Usta   (30.06.2008 в 01:07)   письмо автору
 
   для: sparhok13   (30.06.2008 в 00:40)
 

http://softtime.ru/forum/read.php?id_forum=1&id_theme=54777&page=1

   
 
 автор: Yuriev   (30.06.2008 в 11:22)   письмо автору
 
   для: sparhok13   (26.06.2008 в 00:13)
 

В запроcе SELECT добавить ORDER BY

   
 
 автор: sparhok13   (30.06.2008 в 21:38)   письмо автору
 
   для: Yuriev   (30.06.2008 в 11:22)
 

блин.

   
 
 автор: Trianon   (01.07.2008 в 00:49)   письмо автору
 
   для: sparhok13   (30.06.2008 в 21:38)
 

Как говорит сheops "возможно, Вас заинтересует эта тема" .
http://softtime.ru/forum/read.php?id_forum=3&id_theme=53674

   
 
 автор: Usta   (01.07.2008 в 00:00)   письмо автору
 
   для: sparhok13   (26.06.2008 в 00:13)
 

Как у вас происходит построение категорий и под категорий?? у вас храняться адреса в одной таблице?? Пример:
id_parent | cat_id | name
1______ 1 _____подкатегория1.1
2______ 1 _____подкатегория1.2
3______ 1 _____подкатегория1.3
4______ 2 _____подкатегория2.1
5______ 2 _____подкатегория2.2
и тд.

Хотя врятли!! Или у вас храняться подкатегории в другой таблице? Что похоже на правду??
Напишите хотябы пример таблиц. Чтоб я понял! :))

   
 
 автор: sparhok13   (01.07.2008 в 10:33)   письмо автору
 
   для: Usta   (01.07.2008 в 00:00)
 

Да! Все хранится в одной табице, только поле id_parent нужно поменять местами с cat_id. Вот так:

cat_id | id_parent | name
1______ 1 _____подкатегория1.1
2______ 1 _____подкатегория1.2
3______ 1 _____подкатегория1.3
4______ 2 _____подкатегория2.1
5______ 2 _____подкатегория2.2

   
 
 автор: kukuikar   (01.07.2008 в 09:24)   письмо автору
 
   для: sparhok13   (26.06.2008 в 00:13)
 

Вот с 3 уровнями вложенности. Работает.

Таблица с полями id - id пункта, pid - id родителя, name - название

Нехватает мне мозгов сделать рекурсивную функцию.
2 вложенных цикла while. Коряво, но по другому не могу, к сожалению.

Может подскажет кто?

<?php
$q 
"SELECT * FROM `menu` WHERE `pid`='0'";
$r mysql_query($q);
if(!
$r)    
    die(
mysql_error());

while(
$parent mysql_fetch_array($r))
    {
    echo 
"<a href=\"$_SERVER[PHP_SELF]?parent=$parent[id]\"><b>$parent[name]</b></a><br />";
    
//echo $parent['pid'];
    
if($_GET['parent'] == $parent['id'])
        {
        
$q1 "SELECT * FROM `menu` WHERE `pid`='".$_GET['parent']."'";
        
//echo $q1;
        
$r1 mysql_query($q1);
        if(!
$r1)
            die(
mysql_error());
            
        while(
$sub1 mysql_fetch_array($r1))
            {
            echo 
"&nbsp;&nbsp;&nbsp;<a href=\"$_SERVER[PHP_SELF]?parent=$sub1[pid]&amp;sub1=$sub1[id]\">$sub1[name]</a><br />";
            if(
$sub1['id'] == $_GET['sub1'])
                {
                
$q2 "SELECT * FROM `menu` WHERE `pid`='$_GET[sub1]'";
                
$r2 mysql_query($q2);
                if(!
$r2)
                    die(
mysql_error());
                
                while(
$sub2 mysql_fetch_array($r2))
                    {
                    echo 
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"$_SERVER[PHP_SELF]?parent=$sub1[pid]&amp;sub1=$sub1[id]&amp;sub2=$sub2[id]\"><small>$sub2[name]</small></a><br />";
                    }
                }
            }
        }
    }
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования