Вывод меню и подменю. Дубль №3

Статус
В этой теме нельзя размещать новые ответы.

Mark&Ameli

Новичок
Вывод меню и подменю. Дубль №3

Две темы удалили, решил третью создать, но уже с другой формулировкой вопроса (ибо некоторым прежняя не нравится).
Есть бд, в ней таблица. В этой тоблице хранится меню и подменю. В таблице 3 поля: ID (порядковый номер записи), SUB (если поле является меню, хранится 0, если подменю, то хранится ID меню, к которому относится это подменю), TITLE (собственно название меню, либо подменю)
Выводится вся эта конструкция следующим образом. Каждая запись выводится как ссылка, которая передает ИД поля, в котором хранится. Если тыкнуть на ссылку, то, выводится вся конструкци по такому приципу: вначале выводится все, у чего ID<переданного и SUB=0. Затем выводится подменю, где SUB=переданному ID. Возникла такая проблема, при нажатии на подменю, выводится все меню, без подменюшек.
Без кода сложно объяснить, а код сюда закинуть нельзя, говорят большой он очень, поэтому я только кусок напишу:
PHP:
$result1=mysql_query("SELECT id, sub, title FROM `category` WHERE id<'$id' and sub='0' order by id LIMIT 0, 50") or die(mysql_errno($link));
              while ($ar1=mysql_fetch_array($result1))
                   {       echo"<tr><td>
                           <a href='?id=$ar1[id]'>&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar1[title]
Это начальная часть, ну и дальше идет соответствующим образом. А при нажатии на подменю, передается ид самого подменю, а так как оно больше чем меню, то и выводится все меню (тоесть выполняется условие ID<пересланого).
Вот, кое-как объяснил. И как быть... это не столько програмный вопрос, сколько логический...
 
БААААА....
Сейчас придут будут ругаться....

зы у меня есть исходники кнопки "БАБЛО"
 
Dmi
Кто прийдет, и кто будет ругаться?
И какие такие исходники кнопки? Какой кнопки?
 
Dmi
Хватит чушь всякую нести, давай говори по делу, если есть чего сказать. Не нужна мне никакая кнопка. Я обратился с конкретной проблемой, и хотелось бы выслушать соображения других людей по этому поводу....
 
Mark&Ameli
Я то же обращался......но это не помогло..как то не тот результат получился...так что ничего личного..просто я немного....как бы сказать...недоволен. Капич?
 
скопируй ссылку по которой не открывается подменю
(я имею ввиду, сюда её скопируй)
 
MadGreen
Проблема не в открытие меню. Проблема в том, что при нажатии на любой пункт подменю, оно все сварачевается, и отображается все меню, без подменю. И дело в том, что при нажатии на подменю, передается ИД этого подменю, а так как ДИ подменю всегда больше самого меню, к которому оно относится, то и выполняется условие
PHP:
$result1=mysql_query("SELECT id, sub, title FROM `category` WHERE id<'$id' and sub='0' order by id LIMIT 0, 50") or die(mysql_errno($link)); 
              while ($ar1=mysql_fetch_array($result1)) 
                   {       echo"<tr><td> 
                           <a href='?id=$ar1[id]'>&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar1[title]
а все что дальше идет - игнорируется. Вот я и незнаю что передать при нажатии на подменю. Сейчас передается ИД, но толку от этого нету, хотя этот ИД и нужен...
Вот даже незнаю чего делать....
 
ты приводишь код отображения самого меню...
а где выборка подменю?
 
MadGreen
Привожу полный код:
PHP:
echo"<table>";
if (!isset($id))
    {       $result=mysql_query("SELECT id, sub, title FROM `category` WHERE sub='0' order by id LIMIT 0, 50") or die(mysql_errno($link));
            while ($ar=mysql_fetch_array($result))
                   {       echo"<tr><td>
                           <a href='?id=$ar[id]'>&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar[title]</a></td></tr>";
                   }
    }
if (isset($id))
    {
            $result1=mysql_query("SELECT id, sub, title FROM `category` WHERE id<'$id' and sub='0' order by id LIMIT 0, 50") or die(mysql_errno($link));
              while ($ar1=mysql_fetch_array($result1))
                   {       echo"<tr><td>
                           <a href='?id=$ar1[id]'>&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar1[title]</a></td></tr>";
                   }
             $result3=mysql_query("SELECT id, sub, title FROM `category` WHERE id='$id' and sub='0' LIMIT 0, 50") or die(mysql_errno($link));
              while ($ar3=mysql_fetch_array($result3))
                   {       echo"<tr><td>
                           <a href='?id=$ar3[id]'>&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar3[title]</a></td></tr>";
                   }
             $result4=mysql_query("SELECT id, sub, title FROM `category` WHERE sub='$id' LIMIT 0, 50") or die(mysql_errno($link));
              while ($ar4=mysql_fetch_array($result4))
                   {       echo"<tr><td>
                           <a href='?id=$ar4[id]'>&nbsp&nbsp&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar4[title]</a></td></tr>";
                   }
            $result2=mysql_query("SELECT id, sub, title FROM `category` WHERE id>'$id' and sub='0' order by sub LIMIT 0, 50") or die(mysql_errno($link));
              while ($ar2=mysql_fetch_array($result2))
                   {       echo"<tr><td>
                            <a href='?id=$ar2[id]'>&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar2[title]</a></td></tr>";
                   }
    }
echo "</table>";
echo "<br>";
Вот так вот выглядит весь код. Из него ясно почему при нажатии на подменю, оно пропадает. Вопрос в том, как это устранить...
 
а в чем смысл твоего скрипта вообще? отображать подменю только для активного родительского элемента меню?
если да, то зачем все так сложно?
 
Нет, суть скритпта отображать все меню, при нажатии на меню, если есть подменю относящееся к этому меню, то отображать все меню, и подменю...
Да, вполне может быть что я все усложняю. Но другой иди мне в голову не пришло... А есть какой-то способ по проще? Если есть, то с удовольствием выслушаю....
 
Автор оригинала: Mark&Ameli
Нет, суть скритпта отображать все меню, при нажатии на меню, если есть подменю относящееся к этому меню, то отображать все меню, и подменю...
PHP:
echo"<table>";
if (!isset($id))
    {       $result=mysql_query("SELECT id, sub, title FROM `category` WHERE sub='0' order by id LIMIT 0, 50") or die(mysql_errno($link));
            while ($ar=mysql_fetch_array($result))
                   {       echo"<tr><td>
                           <a href='?id=$ar[id]'>&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar[title]</a></td></tr>";
                   }
    }
else
    {
            $result1=mysql_query("SELECT id, sub, title FROM `category` WHERE sub='0' order by id LIMIT 0, 50") or die(mysql_errno($link));
              while ($ar1=mysql_fetch_array($result1))
                   {       echo"<tr><td>
                           <a href='?id=$ar1[id]'>&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar1[title]</a></td></tr>";
                           if ($ar1[id] == $id)
                           {
                           $result2=mysql_query("SELECT id, sub, title FROM `category` WHERE sub='$id' LIMIT 0, 50") or die(mysql_errno($link));
                           while ($ar2=mysql_fetch_array($result2))
                                  {
                                  echo"<tr><td>
                                  <a href='?id=$ar2[id]'>&nbsp&nbsp&nbsp<img src='images/shtuka.gif' border=0>&nbsp$ar2[title]</a></td></tr>";
                                  }
                           }
                   }
    }
echo "</table>";
echo "<br>";
должно работать...

-~{}~ 03.06.06 19:55:

и кстати...
привыкни выносить переменные из текста в echo и правильно пиши &nbsp: при такой записи некотороые браузеры будут брыкаться...

-~{}~ 03.06.06 19:59:

сейчас подумал что будет если id будет относиться к подменю...
нужно прятать подменю при переходе к другому родительскому элементу?

-~{}~ 03.06.06 20:02:

имхо, проще передавать не только id, а разделить на id меню и sub_id подменю, тогда будет однозначность...
 
MadGreen
Проверил, результат такой же как и раньше. Изначально отображается меню, при клацанье на меню открывается подменю (при условии что оно есть). Все бы хороше, но, при клацанье на подменю, оно пропадает, отображается просто все меню, а подменю и след простыл... :( Надо дабы при клацанье на меню, отображалось подменю (если оно есть), а при калацанье на подменю, оно не пропадало, а оставалось на месте....
 
варианта 2: или переделывай структуру на два id или передавай по клику id родительского меню и id подменю, тогда оно не будет пропадать
 
Тема закрыта.

Проблемы личного характера и бессмысленные споры между участниками не являются предметом обсуждения форума.
Обсуждайте их в привате.

-~{}~ 03.06.06 20:05:

MadGreen
если ты взялся переписывать за него код - возьми у него контакт и делай это приватно.

Для форума же ваша беседа ценности никакой не представляет
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху