sql_fetch_array($sql) 결과값을 출력하려면?

sql_fetch_array($sql) 결과값을 출력하려면?

QA

sql_fetch_array($sql) 결과값을 출력하려면?

본문

https://sir.kr/qa/252883 질문에서, 

sql_query($sql) 결과값과 sql_fetch($sql) 결과값은 print_r2 함수를 이용해 쉽게 출력했는데,

sql_fetch_array($sql) 결과값은 어떻게 출력시켜야 할지 잘 모르겠네요.

즉, 아래 식에서 $row 값을 출력시키고 싶습니다.

for나 white 등 반복문을 이용한다는데.....어떻게 하는건지?


$sql = " select * ";
$sql.= "   from {$g5['menu_table']} ";
$sql.= "  order by convert(me_order, char), me_id ";
$qry = sql_query($sql);

$row=sql_fetch_array($qry);

이 질문에 댓글 쓰기 :

답변 3

$sql = " select * ";
$sql.= "   from {$g5['menu_table']} ";
$sql.= "  order by convert(me_order, char), me_id ";
$qry = sql_query($sql);

 

1. while 

 while ($row = sql_fetch_array($qry)) {

  echo $row['me_name']; 

}

 

2. for

for ($i=0; $row=sql_fetch_array($qry); $i++) {

   echo $row['me_name']; 

}

 

 

로토루아 님 자세한 답변 감사합니다.

근데, 제가 아래처럼 코드를 넣어보니까, 그룹 메뉴 정보는 안 뜨네요.
해당 테이블엔 그룹까지 포함해 메뉴가 3개거든요. (https://sir.kr/qa/252883 하단 참고)

$sql = " select * ";
$sql.= "  from {$g5['menu_table']} ";
$sql.= "  order by convert(me_order, char), me_id ";
$qry = sql_query($sql);
$row = sql_fetch_array($qry);
while ($row = sql_fetch_array($qry)) {
  print_r2($row);
}

위처럼 해주니까, 그룹 메뉴는 안 나타나고, 소메뉴만 나타나네요. (for문도 마찬가지)
그룹까지 나오게 하려면 어떻게 해야 하는지?



■ sql_fetch_array($qry)) 결과값


Array
(
    [me_id] => 19
    [me_code] => 1020
    [me_name] => 소메뉴2
    [me_link] => http://127.0.0.1/mw5/bbs/board.php?bo_table=S02
    [me_target] => self
    [me_order] => 1010
    [me_use] => 1
    [me_mobile_use] => 1
)
Array
(
    [me_id] => 18
    [me_code] => 1010
    [me_name] => 소메뉴1
    [me_link] => http://127.0.0.1/mw5/bbs/board.php?bo_table=S01
    [me_target] => self
    [me_order] => 1020
    [me_use] => 1
    [me_mobile_use] => 1
)

위 소스에서 $row = sql_fetch_array($qry);  라인 빼주니까, 다 나오네요. ㅎㅎ ^^;
덕분에  새벽동안 끙끙 앓던 문제를 해결해 너무 기분 좋네요. 좋은 하루 되세요.

 

$sql = " select * "; 
$sql.= "  from {$g5['menu_table']} "; 
$sql.= "  order by convert(me_order, char), me_id "; 
$qry = sql_query($sql); 
$row = sql_fetch_array($qry); // 이부분 삭제
while ($row = sql_fetch_array($qry)) { 
  print_r2($row); 

 

$row = sql_fetch_array($qry); 은 $qry을 배열로 받는 것입니다.

배열로 받은 상태에서 다시 while 문으로 배열을 루프시키면 첫번째 내용을 제외한게 루프됩니다.

 

쉽게 설명드리자면 

데이터가 3개가 있다면 배열은 0,1,2 이런식으로 됩니다.

 

$row = sql_fetch_array($qry);   // 0 으로 생각하세요

while ($row = sql_fetch_array($qry)) {  // 1~2
  print_r2($row); 

 

때문에 위의 구문에 $row = sql_fetch_array($qry);  는 잘못된 사항이므로 없애야 합니다.

 

$sql = " select * "; 
$sql.= "  from {$g5['menu_table']} "; 
$sql.= "  order by convert(me_order, char), me_id "; 
$qry = sql_query($sql); 
while ($row = sql_fetch_array($qry)) { 
  print_r2($row); 

이렇게 이루어져야 합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,959 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT