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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Выборка из двух таблиц

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-43] 

 
 автор: ride   (19.07.2009 в 23:05)   письмо автору
 
   для: gOFREe   (19.07.2009 в 22:24)
 

вроде все как надо:
<ul id='nav-one' class='nav'>
    <li><a  href='/'>Главная</a><ul></ul></li>
    <li><a  href='/firm'>Производители</a><ul></ul></li>
    <li><a  href='/test1'>Тест</a>
        <ul>
            <li><a  href='/cat2'>подкатегория2</a></li>
        </ul>
    </li>
    <li><a  href='/test2'>Тест2</a><ul></ul></li>
    <li><a  href='#'>Сайт</a>
            <ul>
                <li><a  href='/cat1'>подкатегория1</a></li>
                <li><a  href='/cat3'>подкатегория3</a></li>
             </ul>
    </li>
</ul>

  Ответить  
 
 автор: gOFREe   (19.07.2009 в 22:24)   письмо автору
 
   для: ride   (19.07.2009 в 22:09)
 


--
-- Структура таблицы `tun_menu`
--

CREATE TABLE IF NOT EXISTS `tun_menu` (
  `id` tinyint(4) NOT NULL auto_increment,
  `posid` varchar(255) NOT NULL default '',
  `menu_name` varchar(255) NOT NULL default '',
  `menu_link` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `id_2` (`id`),
  KEY `id_3` (`id`),
  KEY `posid` (`posid`),
  KEY `menu_name` (`menu_name`),
  KEY `menu_link` (`menu_link`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9 ;

--
-- Дамп данных таблицы `tun_menu`
--

INSERT INTO `tun_menu` (`id`, `posid`, `menu_name`, `menu_link`) VALUES
(1, '1', 'Главная', '/'),
(8, '7', 'Сайт', '#'),
(3, '3', 'Производители, '/firm'),
(4, '4', 'Тест', '/test1'),
(6, '6', 'Тест2', '/test2');




--
-- Структура таблицы `tun_menuR`
--

CREATE TABLE IF NOT EXISTS `tun_menuR` (
  `id` tinyint(4) NOT NULL auto_increment,
  `idr` tinyint(4) NOT NULL,
  `menu_nameR` varchar(255) NOT NULL default '',
  `menu_linkR` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `id_2` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=12 ;

--
-- Дамп данных таблицы `tun_menuR`
--

INSERT INTO `tun_menuR` (`id`, `idr`, `menu_nameR`, `menu_linkR`) VALUES
(8, 8, 'подкатегория1', '/cat1'),
(7, 4, 'подкатегория2', '/cat2'),
(11, 8, 'подкатегория3', '/cat3');

  Ответить  
 
 автор: ride   (19.07.2009 в 22:09)   письмо автору
 
   для: gOFREe   (19.07.2009 в 21:54)
 

кстати, дайте дамп

  Ответить  
 
 автор: gOFREe   (19.07.2009 в 21:54)   письмо автору
 
   для: ride   (19.07.2009 в 19:59)
 

Странно... все тоже самое, а выводит криво... или я слепой...
А если еще добавить пару категорий?

  Ответить  
 
 автор: ride   (19.07.2009 в 19:59)   письмо автору
 
   для: gOFREe   (19.07.2009 в 19:37)
 

не поверите...
вот результат:

<ul id='nav-one' class='nav'>
    <li><a  href='/'>Главная</a>
        <ul>
            <li><a  href='/test'>TECT</a></li>
        </ul>
    </li>
     <li><a  href='#'>Сайт</a>
        <ul>    
            <li><a  href='/register'>Регистрация</a></li>
            <li><a  href='/about'>О нас</a></li>
        </ul>
    </li>
</ul>


код:

$sql =  "SELECT menu.*, menur.*
                 FROM menu
                 LEFT JOIN menur
                 ON menur.idr = menu.id ORDER by menu.id"; 
$res = mysql_query($sql) or die(mysql_error());  
$name = ""; 
$header="<ul id='nav-one' class='nav'>";
   while( $i_menu = @mysql_fetch_assoc($res) ) {
       
       if($name != $i_menu['menu_name']) {
           if($name!='')$header .= '</ul></li>';
           $header .= "<li><a  href='".$i_menu['menu_link']."'>".$i_menu['menu_name']."</a><ul>";
           $name = $i_menu['menu_name'];
           }
           if ($i_menu['menu_linkR'] != '') {
               $header .= "<li><a  href='".$i_menu['menu_linkR']."'>".$i_menu['menu_nameR']."</a></li>";
               }
               }
echo $header .= "</ul></li></ul>";  


Ищите ошибку

  Ответить  
 
 автор: ride   (19.07.2009 в 19:51)   письмо автору
 
   для: gOFREe   (19.07.2009 в 19:37)
 

и запрос..

  Ответить  
 
 автор: gOFREe   (19.07.2009 в 19:37)   письмо автору
 
   для: ride   (19.07.2009 в 19:24)
 

Не менял... просто копировал и вставил.

<?
$name 
""
$header.="<ul id='nav-one' class='nav'>";
   while( 
$i_menu = @mysql_fetch_assoc($res) ) {
       
       if(
$name != $i_menu['menu_name']) {
           if(
$name!='')$header .= '</ul></li>';
           
$header .= "<li><a  href='".$i_menu['menu_link']."'>".$i_menu['menu_name']."</a><ul>";
           
$name $i_menu['menu_name'];
           }
           if (
$i_menu['menu_linkR'] != '') {
               
$header .= "<li><a  href='".$i_menu['menu_linkR']."'>".$i_menu['menu_nameR']."</a></li>";
               }
               }
$header .= "</ul></li></ul>"
?>

  Ответить  
 
 автор: ride   (19.07.2009 в 19:24)   письмо автору
 
   для: gOFREe   (19.07.2009 в 19:07)
 

блин, в приведенном мной коде никак не должно было получиться такого рез-та!
давайте сюда свой код. уверен, что вы его изменили.

  Ответить  
 
 автор: gOFREe   (19.07.2009 в 19:07)   письмо автору
 
   для: ride   (19.07.2009 в 18:45)
 

Работает, но очень криво )

<ul id='nav-one' class='nav'>
   <li>категория1
<ul></ul><li>категория2
<ul></ul><li>категория3
<ul><li>подкатегория1</li>

</ul><li>категория4
<ul></ul><li>категория5
<ul><li>подкатегория2</li>
<li>подкатегория3</li>
</li></ul>

  Ответить  
 
 автор: ride   (19.07.2009 в 18:45)   письмо автору
 
   для: gOFREe   (19.07.2009 в 18:28)
 

хм..а у вас цикл такой же как и у меня? переменную $menu вы меняете там же?
попробуйте if($name!=='')$header .= '</ul></li>'; заменить на if($name!='')$header .= '</ul></li>';

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-43] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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