2015-05-08 4 views
0

Я создаю очень простое приложение, но поскольку я действительно ржавый с кодом и новый для ООП, я, похоже, не понимаю логики создания простая ссылка, в которой будут отображаться только продукты, относящиеся к этой категории. Приложение не является электронной коммерцией, оно просто извлекает данные из базы данных, отображает ее, когда пользователь нажимает на ссылку и записывает данные в таблицы продуктов и категорий. Интерфейс, который я пытаюсь сделать, - это способ отображения ссылок на продукты, когда пользователь нажимает на соответствующие категории. Единственная проблема заключается в том, что категории многоуровневые, и там, где я полностью застреваю, понятия не имею, как передать переменную, или вытащить соответствующий оператор выбора. Моя проблема: я просматривал и пытался посмотреть примеры, показывающие, как отображать списки продуктов, и ни один из них не относится к многоуровневым подкатегориям. Мне нужно добавить URL-адрес, где ссылка - это категория, связанная с этим продуктом. У меня две простые таблицы и динамическое меню.Показать продукты из определенной категории в многоуровневой категории приложения php mysql pdo oop

-- 
-- Table structure for table `products1` 
-- 

CREATE TABLE IF NOT EXISTS `products1` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`name` varchar(32) NOT NULL, 
`description` text NOT NULL, 
`price` int(11) NOT NULL, 
`category_id` int(11) NOT NULL, 
`created` datetime NOT NULL, 
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ; 

-- 
-- Table structure for table `menu` 
-- 

CREATE TABLE IF NOT EXISTS `menu` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`name` varchar(255) CHARACTER SET utf8 NOT NULL, 
`parent_id` int(11) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=136 ; 

Меню таблицы - это всего лишь способ связать родительские категории с их братьями и сестрами. Поскольку у меня более 103 категорий, все связанные друг с другом по их родительскому id, я понятия не имею, как написать логику для отображения активной категории в меню. Моя логика ошибочна. Не могу понять, какое сравнение мне нужно сделать, код шляпы нужно сделать, чтобы передать правильный идентификатор категории, в зависимости от того, где находится активный тег Li.

Это меню, созданное этой таблицей.

 <?php 
     $items = $rows; 
     $id = ''; 
     echo '<ul class="dl-menu">'; 
     foreach($items as $item){ 
      if($item['parent_id'] == 0) { 
       echo '<li><a href="?category=<?php echo $category->id?>">'.  $item['name'] . '</a>'; 
       $id = $item['id']; 
       sub($items, $id); 
       echo '</li>'; 
      } 
     } 
     echo "</ul>"; 
     function sub($items, $id){ 
      echo '<ul class="dl-submenu">'; 
      foreach($items as $item){ 
      if($item['parent_id'] == $id) { 
       echo '<li><a href="?category=<?php echo $category->id?>">'. $item['name'] . '</a>'; 
     //  $id = $item['id']; 
       sub($items, $item['id']); 
       echo '</li>'; 
       } 
      } 
      echo '</ul>'; 
     } 
?> 

Моя проблема связана с линией кода, которая перекликается с идентификатором категории. Я понятия не имею, какой сценарий мне нужен для вывода, я имею в виду логику, которую мне нужно сравнить, чтобы получить этот результат.

ответ

0

ваших линий тока, которые выводят идентификатор категории выглядеть следующим образом:

echo '<li><a href="?category=<?php echo $category->id?>">' . $item['name'] . '</a>'; 

Как это eachos изнутри PHP, вам не нужны теги внутри эхо, поэтому изменение этих линий к:

echo '<li><a href="?category=' . $category->id . '">'. $item['name'] . '</a>'; 

должен исправить вашу проблему, если я правильно понял вопрос.

+0

Хорошо, проблема в том, что сценарий, который тянет категории, это то, что мне нужно ... и, похоже, не понимает, как это сделать. Спасибо за проверку синтаксиса. Что я должен сделать, сравните, чтобы вытащить категории и продукты, принадлежащие им. Фактический код, поскольку я не понимаю, как его написать. Я много учился и читал. @ gabe3886 – OutletSeason