2015-11-21 4 views
2

Я хочу иметь хлебную крошку на моем сайте выглядит следующим образом: https://jsfiddle.net/pk88b9nb/Иерархическая с подкатегориями

Моя структура категорий таблицы такова: id -- name -- parentid

Когда я использовать код PHP ниже:

<ol> 
    <li><a href="#">Home</a></li> 
    <li> 
    <?php 
    $query = $handler->query("SELECT * from categories where id=".$_GET['id'].""); 
    while($r = $query->fetch()) 
    { 
     echo "<a href=\"#\">$r[name]</a>"; 
    } 
    ?> 
    </li> 
</ol> 

результат: Home/Category. даже подкатегории результат: Home/Subcategory.

Я хочу сделать это как Home/Category/Subcategory

, как я должен изменить свой PHP-код?

+0

Пожалуйста, укажите детали вашей структуры базы данных. Т.е. у вас есть таблица подкатегорий? Какова взаимосвязь между категориями и подкатегориями? – Tristan

+0

как я упомянул в своем посте: «Структура таблицы« Мои категории »такова:' id - name - parentid' » – Lukasz

ответ

2

Вы можете получить категорию это есть ParentId с подзапроса

<ol> 
    <li><a href="#">Home</a></li> 
    <?php 
    $query = $handler->query("SELECT *, (SELECT name FROM categories as s WHERE s.id = c.parentid) as category from categories as c where id= ".$_GET['id'].""); 
    while($r = $query->fetch()) 
    { 
     if (!empty($r['category'])) echo "<li><a href=\"#\">$r[category]</a></li>"; 
     echo "<li><a href=\"#\">$r[name]</a></li>"; 
    } 
    ?> 
</ol> 

Вы должны также избежать $_GET переменной в запросе SQL, чтобы избежать атак инъекций.

+0

это просто отлично. Благодарю. – Lukasz

Смежные вопросы