묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
잘 이해가 되지 않는 부분이 있습니다.
2004.04.14 23:01
$query = "SELECT * FROM guestbook ORDER BY num DESC";
$result = mysql_query($query,$connect);
$row = mysql_fetch_array($result);
echo " $row[num]";
$row = mysql_fetch_array($result);
echo " $row[num]";
$row = mysql_fetch_array($result);
echo " $row[num]";
$row = mysql_fetch_array($result);
echo " $row[num]";
$row = mysql_fetch_array($result);
echo " $row[num]";
임시로 만든 소스인데요..
디비에서 게시물을 불러와서 echo문으로 해당게시물의 num필드의 값을 뿌려주는 부분입니다.
for문으로 하면 되지만 그냥 확인차 저렇게 한건데요..
제가 이해가 안되는게..
왜 한번씩 mysql_fetch_array($result); 할때마다 게시물의 index가 바뀌는건지요?
mysql_fetch_array() 함수에 대한 설명에도 이 함수의 result type은
- MYSQL_NUM : mysql_fetch_row와 마찬가지로 디비에서 데이터값을 번호화하여 배열 변수에 리턴.
- MYSQL_ASSOC : 디비에서 값을 변수에 리턴시킬때 해당필드의 데이터 필드이름을 키값으로하여 배열변수에 리턴.
- MYSQL_BOTH : 기본값으로 두번째 인자를 붙이지 않았을때 자동으로 MYSQL_ASSOC 형식 두가지를 모두 지원
...이라고 적혀있는데.. 이 내용과 무슨 관련이 있나요?
$result = mysql_query($query,$connect);
$row = mysql_fetch_array($result);
echo " $row[num]";
$row = mysql_fetch_array($result);
echo " $row[num]";
$row = mysql_fetch_array($result);
echo " $row[num]";
$row = mysql_fetch_array($result);
echo " $row[num]";
$row = mysql_fetch_array($result);
echo " $row[num]";
임시로 만든 소스인데요..
디비에서 게시물을 불러와서 echo문으로 해당게시물의 num필드의 값을 뿌려주는 부분입니다.
for문으로 하면 되지만 그냥 확인차 저렇게 한건데요..
제가 이해가 안되는게..
왜 한번씩 mysql_fetch_array($result); 할때마다 게시물의 index가 바뀌는건지요?
mysql_fetch_array() 함수에 대한 설명에도 이 함수의 result type은
- MYSQL_NUM : mysql_fetch_row와 마찬가지로 디비에서 데이터값을 번호화하여 배열 변수에 리턴.
- MYSQL_ASSOC : 디비에서 값을 변수에 리턴시킬때 해당필드의 데이터 필드이름을 키값으로하여 배열변수에 리턴.
- MYSQL_BOTH : 기본값으로 두번째 인자를 붙이지 않았을때 자동으로 MYSQL_ASSOC 형식 두가지를 모두 지원
...이라고 적혀있는데.. 이 내용과 무슨 관련이 있나요?
댓글 3
-
패러독스
2004.04.15 12:42
-
beMax
2004.04.15 10:33
mysql_fetch_array -- 결과를 필드이름 색인 또는 숫자 색인으로 된 배열로 반환
설명
array mysql_fetch_array ( int result [, int result_type])
데이터베이스 테이블로부터 가져온 행에 대응되는 배열로 돌려주고, 더이상 가져올 행이 없을 경우 FALSE를 반환한다.
mysql_fetch_array()는 mysql_fetch_row()에서 확장된 함수이다. 결과 배열에 자료가 저장되고 배열의 색인으로 번호가 사용된다. 또한, 배열의 색인으로 테이블의 필드 이름으로도 사용할 수 있다.
결과로 두 개 이상의 동일한 필드 이름을 가진 열이 있다면, 마지막 열이 우선권을 가진다. 동일한 다른 열을 사용하기 위해서는 색인 번호를 이용하거나 질의 문장에서 열의 별명을 주어 이용하여야 한다.
------------------------------
위에서 설명했듯이 현재 커서에서 바로 다음 커서로 이동해서 데이타를 가져옵니다.
mysql_data_seek를 이용하면 아마 임의적으로 커서를 이동시켜 데이타를 가져올수 있을겁니다. -
써니루루☆
2004.04.16 02:35
mysql_fetch_array() 함수는 리설트에서 데이터하나를 배열로 반환하고 다음값으로 넘어가는 함수입니다.
이렇게 함수를 만드는 것이 db를 사용할때 효율적이기 때문에 사용되겠죠.
아마도 PHP차원이 아닌 Database의 어떤 규약차원에서 제정이 되었으리라 생각이 됩니다.
왜냐면 다른 Database에서도 이런경우가 있고, mysql의 c라이브러리 등에서도 비슷한 방식으로 라이브러리가 된걸로 유추가 되는군요.
next 함수를 포함한것도 아닌데..
mysql_fetch_array() 이 구문을 쓸때마다 왜 다음 배열로 넘어가는지.. ㅡ.ㅡ;
그냥 그렇게 되는거다! 라고 이해하면 되나요? -_-;;