2015-11-09 3 views
1

У меня есть две таблицы filter_categories и теги фильтранеобходимости извлекать данные из 2 таблиц в MySQL

filter_categories 
id | category 

filter_tags 
id | filter_category_id | filter_tag 

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

"select filter_categories.filter_category, 
filter_tags.filter_tag from filter_categories JOIN filter_tags ON 
(filter_tags.filter_category_id=filter_categories.id) where 
filter_categories.filter_id='".$_GET["id"]."' 

им получить этот результат с PHP print_r ()

Array 
(
[0] => Array 
    (

     [filter_category] => abcty 
       [filter_tag] => sdfds 

    ) 

[1] => Array 
    (

     [filter_category] => abcty 

     [filter_tag] => dgdfg 

    ) 

[2] => Array 
    (

     [filter_category] => abcty 

     [filter_tag] => gdgdf 

    ) 

[3] => Array 
    (

     [filter_category] => abcty 

     [filter_tag] => dgdfgf 

    ) 

[4] => Array 
    (


     [filter_category] => abcty 
     [filter_tag] => dsfs 

    ) 

)

Но я должен принести результат, как этот

Array 
(
[0] => Array 
    (

     [filter_category] => abcty 
     [filter_tag] => array(
     [filter_tag] => dgdfg 
     [filter_tag] => dgdfgf 
     [filter_tag] => dsfs 
) 
) 
) 

[1] => Array 
    (

     [filter_category] => efg 
     [filter_tag] => array(

    [filter_tag] => et 
[filter_tag] => yu 
[filter_tag] => op 
    ) 
    ) 
    ) 

может кто-то помочь мне out..how сделать это? Благодаря

+0

Вам придется отформатировать данные самостоятельно, mysql не может выводить такие данные. – Jerodev

+0

как отсортировать этот массив, если вы знаете, можете ли вы помочь? – amrit

ответ

0

Прежде всего изменить ваш запрос, как это, чтобы получить идентификатор категории

select filter_categories.id,filter_categories.filter_category, 
filter_tags.filter_tag from filter_categories JOIN filter_tags ON 
(filter_tags.filter_category_id=filter_categories.id) where 
filter_categories.filter_id='".$_GET["id"]. 

то предположит, что ваш результат приходит в $arrfilterALLDetails массив, то просто использовать цикл для изменения результата, как хочет выше, как ниже.

$arrfilterDetails = array(); 
foreach ($arrfilterALLDetails as $key => $value) { 
      $arrfilterDetails[$value['id']]['filter_category'] = $value['filter_category']; 
      $arrfilterDetails[$value['id']][$value['filter_tag']] = $value['filter_tag']; 
     } 
print_r($arrfilterDetails); 

Просто поиграйте с этим, вы получите результат, как хотите.

+0

спасибо suraj..up к точке :) – amrit

+0

Рад, что это вам помогло. Счастливое кодирование. – Suraj

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