테스트 사이트 - 개발 중인 베타 버전입니다

sql_fetch_array($sql) 결과값을 출력하려면? 채택완료

sinbi 7년 전 조회 3,417

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개

채택된 답변
+20 포인트
S
7년 전

$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']; 

}

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

s
sinbi
7년 전
로토루아 님 자세한 답변 감사합니다.

근데, 제가 아래처럼 코드를 넣어보니까, 그룹 메뉴 정보는 안 뜨네요.
해당 테이블엔 그룹까지 포함해 메뉴가 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
)
s
sinbi
7년 전
위 소스에서 $row = sql_fetch_array($qry); 라인 빼주니까, 다 나오네요. ㅎㅎ ^^;
덕분에 새벽동안 끙끙 앓던 문제를 해결해 너무 기분 좋네요. 좋은 하루 되세요.

댓글을 작성하려면 로그인이 필요합니다.

S
7년 전

$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); 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
7년 전
아하, 새로 받아오는 게 아니라, 나머지만 받아와서 그런 거군요.
나중에 요긴하게 써먹을 수 있는 팁 같네요. ^^

댓글을 작성하려면 로그인이 필요합니다.

S
7년 전

 

$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); 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
7년 전
로토루아 님, 문득 궁금한 게요,
왜 저 붉은 라인이 추가될수록 배열이 하나씩 사라지는 건가요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인