sql_fetch_array 개념이 헷갈리네요 ㅠ 채택완료

아래 1번과 2번은 같은 결과를 내죠? 그런데 2번에서 왜 $i=0, $i++ 이 어떻게 쓰이는건지 문법 해석이 안됩니다.

일반적으로 알고 있는 for 문은 ($i=0; $i<10; $i++) 이런식인데.. 저걸 어떻게 해석해야 하는건지.. ㅠㅠ

1.

$sql = "select * from table"; 
$result = mysql_query($sql); 
while($row = sql_fetch_array($result)){ 
     print_r($row);

2.

$sql = "select * from table"; 
$result = mysql_query($sql); 

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

     print_r($row);
}

답변 1개

채택된 답변
+20 포인트

sql_fetch_array 라는 함수는 query의 결과가 2차원 배열인 것을

순차적으로 1차원 배열로 전달해주는 역할을 합니다.

1.에서는 while 문에서 배열이 다 전달될때까지 순환하는 구조이고

2.에서는 $i 는 계속 증가하지만, 배열이 다 전달될때까지만 순환하도록 된 것이죠

중간에 조건에 $i 가 있어야할 것 같지만,

php 에서 저렇게도 가능하도록 선언을 해준 겁니다.

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

답변에 대한 댓글 4개

그럼 2에서 $i는 무슨역할을 하는건가요?
$row[$i] 처럼 쓰이는것도 아니고
배열의 수, 즉 데이터가 카운트 되면서 증가하는 변수로 활용은 가능하겠죠??^^
그럼 $i 를 쓸 일이 없다면 안써도 되나요?
for (;$row=sql_fetch_array($result);;) {
}
for 문에 $i 가 없으면 구문이 에러가 나겠죠??^^

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

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

로그인
🐛 버그신고