построить динамическое мега меню

0

Изображение 174551

<div class="menu-wrapper" role="navigation">
  <ul class="nav" role="menubar">
    <li role="menuitem">
      <a href="#">Menu Item 1</a>
      <div class="mega-menu" aria-hidden="true" role="menu">
        <?php foreach($kategoriler as $kategori){ ?>
          <div class="nav-column">
            <h3><?php echo $kategori["kategori_adi"]; ?></h3>

            <?php
              $kategori_id = $kategori["id"];
              $urunler = $db->query("SELECT * FROM urun WHERE kategori_id=$kategori_id", PDO::FETCH_ASSOC);
            ?>
            <ul>
              <?php foreach($urunler as $urun){ ?>
                <li role="menuitem"><a href="<?php echo $urun["url"]; ?>"><?php echo $urun["brand"]; ?></a></li>
              <?php } ?>
            </ul>
          </div>
        <?php } ?>
      </div>
    </li>

  <li role="menuitem"><a href="#">Menu Item 2</a></li>
  <li role="menuitem"><a href="#">Menu Item 3</a></li>
  <li role="menuitem"><a href="#">Menu Item 4</a></li>
  <li role="menuitem"><a href="#">Menu Item 5</a></li>
  <li role="menuitem"><a href="#">Menu Item 6</a></li>

    <li role="menuitem" class="nav-search">
      <form action="#">
        <label for="search"></label>
        <input type="text" id="search" title="Search..." placeholder="Search...">
        <input type="submit" value="">
      </form>
    </li>
  </ul>
</div>
--
-- Database: 'megamenu'
--

--
-- Table structure for table 'kategori'
--

CREATE TABLE 'kategori' (
  'id' int(11) NOT NULL,
  'kategori_adi' varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table 'kategori'
--

INSERT INTO 'kategori' ('id', 'kategori_adi') VALUES
(1, 'category 1'),
(2, 'category 2'),
(3, 'category 3'),
(4, 'category 4');

--
-- Table structure for table 'urun'
--

CREATE TABLE 'urun' (
  'id' int(11) NOT NULL,
  'brand' varchar(255) DEFAULT NULL,
  'kategori_id' int(11) DEFAULT NULL,
  'url' varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table 'urun'
--

INSERT INTO 'urun' ('id', 'brand', 'kategori_id', 'url') VALUES
(1, 'product1', 1, '#'),
(2, 'product2', 1, '#'),
(3, 'Klavye', 1, '#'),
(4, 'Sifonyer', 2, '#'),
(5, 'TV Sehpahasi', 2, '#'),
(6, 'Yemek Masasi', 2, '#'),
(7, 'Hortum', 3, '#'),
(8, 'Cardak', 3, '#'),
(9, 'Sandalye', 3, '#'),
(10, 'Masa', 3, '#'),
(11, 'Teyp', 4, 'http://www.kablosuzkedi.com');

--
-- Indexes for dumped tables
--

--
-- Indexes for table 'kategori'
--
ALTER TABLE 'kategori'
  ADD PRIMARY KEY ('id');

--
-- Indexes for table 'urun'
--
ALTER TABLE 'urun'
  ADD PRIMARY KEY ('id');

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table 'kategori'
--
ALTER TABLE 'kategori'
  MODIFY 'id' int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
--
-- AUTO_INCREMENT for table 'urun'
--
ALTER TABLE 'urun'
  MODIFY 'id' int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;COMMIT;

Проблема: здесь видна только одна подкатегория. Я хочу, чтобы item 2 item1, item 2 меню item 2, item 3 меню отображался динамически через базу данных.

  • 0
    привет ... Кшиштоф Янишевский. Вы можете мне помочь ? как создать динамическое мега меню
Теги:
mysqli
menu

1 ответ

0

Я думаю, что вы сталкиваетесь с ошибкой, итерации через $urunler когда он пуст. Вместо этого используйте следующие строки:

<?php
$kategori_id = $kategori["id"];
$urunler = $db->query("SELECT * FROM urun WHERE kategori_id=$kategori_id", PDO::FETCH_ASSOC);

if (!empty($urunler):
?>
<ul>
    <?php 
    foreach($urunler as $urun): 
    ?>
    <li role="menuitem"><a href="<?php echo $urun["url"]; ?>"><?php echo $urun["brand"]; ?></a></li>
    <?php
    endforeach;
    ?>
</ul>
<?php
endif;
?>
  • 0
    Большое спасибо за быстрый ответ. Дело в том, что 1-е меню отлично работает. Я хочу, чтобы пункт 2 меню отображался как пункт 1 меню с подкатегорией.
  • 0
    Я хочу, чтобы пункт меню 1, пункт меню 2, пункт меню 3 были видны динамически через базу данных.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню