Вопрос таков. Есть некое меню. У этого меню есть порядок. В базе этот порядок выводится столбиком 'ordering'. Так же есть столбик 'parent' в нём показано является ли данный пункт родительским (т.е равным 0),или дочерним (т.е НЕ равным 0). Цель такова: В родительском пункте показывать только порядок родительского,в дочернем и порядок родительского и порядок дочернего! Вот код который я написал $sql_now=mysql_query("SELECT ordering FROM jos_menu WHERE parent = '0'"); $sql_now_array=mysql_fetch_array($sql_now); $_SESSION['order'] = $sql_now_array[0]; echo $_SESSION['order']; $sql_nopar=mysql_query("SELECT ordering FROM jos_menu WHERE parent != '0'"); $sql_nopar_array=mysql_fetch_array($sql_nopar); $_SESSION['ord'] = $sql_nopar_array[0]; echo $_SESSION['ord']; В данном случае работает так. Родитель выводится у родителя,дочь у дочери.НО родитель у дочернего не выводится. А как сделать так чтоб это работала. Т.е мне нужно,чтоб не было как бы условия ЕСЛИ парент=0 то выводится это,мне нужно чтоб сессия тупо держала все значения этого вывода в себе,без всяких условий,чтоб я мог бы вывести её в любо месте кода.
что-то типа если нет родителя, то $array[id этого элемента][name] = имя элемента если есть родитель, то $array[id родителя][children][id элемента] = имя элемента ?
не совсем. дело в том,что дочка и родитель отличаются только ихним parent-ом.Т.е если parent=0,то это родитель,если parent != 0, то это дочка. Щас приведу более детальный пример У меня есть пункт меню скажем "О нас". У этого пункта порядок ("ordering" в базе) скажем "2",этот пункт родитель,у него parent=0(тоже в базе). У этого пункта есть дочерний элемент скажем "Новости" у него порядок скажем "3",этот пункт есть дочка,т.е у него parent != 0. Мне нужно: Чтоб когда я кликал по "О нас" у меня отображалась цифра "2",когда я кликаю по "Новости",выводилось "2","3". Как это реализовать?
я привёл возможный вариант хранения информации о родителе и детях в массиве. А что мешает, войдя в определённую категорию, вытянуть из базы информацию о id и parent?
Таким путём не получается. Он всё равно выводить на странице родителя,родительский порядок,на странице дочери,только дочерний. $sql=mysql_query("SELECT parent FROM jos_menu WHERE menutype = 'mainmenu' AND id = '$Itemid' AND published = '1' ORDER BY 'ordering'"); $sql_now_par=mysql_fetch_array($sql); $_SESSION['par'] = $sql_now_par['parent']; $sql_now_up=mysql_query("SELECT ordering FROM jos_menu WHERE menutype = 'mainmenu' AND id = '$Itemid' AND parent != '0' AND published = '1'"); $sql_now_array_up=mysql_fetch_array($sql_now_up); $_SESSION['ord'] = $sql_now_array_up['ordering']; $sql_now=mysql_query("SELECT ordering FROM jos_menu WHERE menutype = 'mainmenu' AND id = '$Itemid' AND parent = '0' AND published = '1'"); $sql_now_array=mysql_fetch_array($sql_now); $_SESSION['order'] = $sql_now_array['ordering']; $array[0][0]=$_SESSION['ord']; $array[0][1]=$_SESSION['order']; if ($_SESSION['par']!='0') { echo $array[0][0]; } elseif ($_SESSION['par']='0') { echo $array[0][0]; echo $array[0][1]; } Дело в том,что выше описана выборка порядка (ordering) по parent-у. Отсюда он и выводит порядок каждого на своей странице. А как же,тупо,как бы записать данные родителя. чтобы в любом месте я мог его echo-нуть и он дал мне именно эти числа? к примеру в ряд в любом месте,на любой странице: 1,2,3,4. Я недавно в ПХП. Мне интересно,неужели нет никакой функции для выборки и ХРАНЕНИИ данных однажды,без повторного обращение к базе? П.с: Данную процедуру я организовываю на Joomla 1.0.15