2013-09-09 4 views
-2

enter image description hereКак получить нижнюю категорию до верхнего уровня?

в этой таблице мы создаем несколько категорию подуровень с помощью «parent_category_id», то, как получить этот тип массива, используя запрос или PHP код

Ожидаемый результат:

я могу найти category_id = 7 и возврата снизу высшей категории levev

в этом случае 10 является ребенок 7 и 7 является потомком 1

Array 
( 
    [0] => Array 
     (
      [category_id] => 1 
      [category_name] => Business Cards 
     ), 
    [1] => Array 
     (
      [category_id] => 10 
      [category_name] => One Sided 
     ), 
    [2] => Array 
     (
      [category_id] => 7 
      [category_name] => Standard 
     ) 
) 
+0

Я боюсь, что вы не правы! 10 - ребенок 7 лет, а 7 - ребенок 1. – Bere

+0

Да, вы правы –

ответ

0
$query = "select category_id, category_name from category_table where category_id = '$id'"; 

$result = mysqli_query($con, $query); //assuming you perform mysqli_connection first 

$array_output = array(); 

$row = mysqli_fetch_assoc($result); 
$array_output[] = $row; 

while(!empty($row)){ 
    if($row['parent_category_id'] == 0) break; 
    $query = "select category_id, category_name from category_table where category_id = '{$row['parent_category_id']}'"; 
    $result = mysqli_query($con,$query); 
    $row = mysqli_fetch_assoc($result); 
     $array_output[]= $row; 
    } 
+0

Мне нужна верхняя и нижняя категория –

+0

Я отредактировал свой ответ @ShaktiPatel – Bere

+0

, но как получить конечный уровень –

0
$items = array() ; 

while($row = $result->fetch_assoc()){ 
    $items[(int) $row['category_id']] = array(
    "category_id" => $row['category_id'], 
    "category_name" => $row['category_name'] 
) ; 
} 

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

Если вам все еще нужно обычное индексирование начиная с 0:

$items[] = array(
    "category_id" => $row['category_id'], 
    "category_name" => $row['category_name'] 
) ; 
+0

Мне нужна верхняя верхняя категория –

+0

Что это значит? Опишите желаемый результат в своем вопросе. – vikingmaster