2011-04-18 4 views
1

MySQL의 테이블 test은 다음과 같습니다MySQL의 PHP : 추가 행

id name   lft  rgt 
1 Folder 1  1   10 
2 Child 1   2   3 
3 Child 2   4   7 
4 Child 1   5   6 
5 Child 3   8   9 

내가 할 경우 :

$results = mysql_query("SELETCT * FROM test ORDER BY id"); 
$fetch = mysql_fetch_array($results); 

echo "<pre>"; 
echo print_r($fetch); 
echo "</pre>; 

결과는 다음과 같습니다

[0] => 1 
[id] => 1 
[1] => Folder 1 
[name] => Folder 1 
[2] => 1 
[lft] => 1 
[3] => 10 
[rgt] => 10 

내 질문은 왜 [0] => 1, [1] => Folder 1, 2] => 1[3] => 10이 있습니까? 내가 본 것처럼 원래 행과 어떻게 든 연결되어 있습니다. 아마도 이것들이 인덱스가 될 수 있지만 어떻게 제거해야합니까?

답변

2

mysql_fetch_array()는 데이터를 검색하는 세 가지 모드가 있습니다. 기본값은 MYSQL_BOTH입니다. 이것은 콤보 해시 + 배열 구조입니다. 다른 두 모드는 배열 전용 (MYSQL_NUM) 및 해시 전용 (MYSQL_ASSOC)입니다. 모드 패치 1 대응 : 즉

이 1 직접이다)

mysql_fetch_array($results, MYSQL_NUM) === mysql_fetch_row($results) 
mysql_fetch_array($results, MYSQL_ASSOC) === mysql_fetch_assoc($results) 
mysql_fetch_array($results) === mysql_fetch_array($results, MYSQL_BOTH) // default mode. 
3

mysql_fetch_array가 작동하는 방식입니다. 0에서 3까지의 인덱스를 사용하거나 이름을 사용할 수 있습니다.

만 사용할 수있는 이름을 사용하려면 : mysql_fetch_assoc

+0

롤을,이 :)) 들으을 결코 생각하지 않았다 – Adam

0

을 명령로 MYSQL_ASSOC 당신에게 연관 당신은 당신이 원하는 어느 하나를 지정하지 않으면 숫자 배열을 모두 가져옵니다. 대신 사용해보십시오 :

$fetch = mysql_fetch_assoc($results);