배열 질문입니다.

배열 질문입니다.

QA

배열 질문입니다.

답변 3

본문

카테고리 구성을 하고있는데요

 

=================

idx  cate(varchar)  parent(int)

1       test

2      test-a                1

3      test-b                1

 

=================

 

parent가 없으면 1뎁스이고

있으면 idx값을 넣어주는데요 

이것을 배열로 처리하려고할때

 

 

 

[1] => Array

(

  [cate] => test

  [sub]  => Array(

            [0] => test-a

            [1] => test-b

  )

)

 

배열을 이렇게 만들려고하는데 잘안되네요ㅜ 도와주세요

 

 

이 질문에 댓글 쓰기 :

답변 3


$query = sql_query("SELECT * FROM test");
while($rows = sql_fetch_array($query)) {
    if(!$rows['parent']) $arr[$rows['idx']]['cate'] = $rows['cate'];
    if($rows['parent']) $arr[$rows['parent']]['sub'][] = $rows['cate'];
}

자식 필드에 값이 없으며너 배열[ 로우[idx] ] [cate]  = 로우[cate]

있으면 배열[ 로우[parent] ] [sub] [ 카운트 ] = 로우[cate]

형식으로 하시면 될거 같네요 카운트도 따로 만드시고요 대충 이런식일거 같네요

먼저 부모 카테고리만 쿼리해서 루프를 돌리고

루프 안에서 자식카테고리를 쿼리해서 루프로 배열에 넣어 주면 되겠습니다.

 

예)


$arr = array();
$res = sql_query(" select * from 카테고리테이블 where parent='' order by idx asc ");
for($i=0;$row=sql_fetch_array($res);$i++){
   $arr[$row['idx']]['cate'] = $row['cate']; 
   $sres = sql_query(" select * from 카테고리테이블 where parent='".$row['idx']."' order by idx asc ");
    for($j=0;$row2=sql_fetch_array($sres);$j++){
      $arr[$row['idx']]['sub'][$j] = $row2['cate'];
  }
}
 
print_r2($arr);
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 71
© SIRSOFT
현재 페이지 제일 처음으로