2011-11-11 5 views
0

내가 MySQL과 PHP 5를 사용하고 있습니다 : 내가 할 경우PHP 배열 액세스

foreach ($line as $data) 
    { 
     echo ($data . ", "); 
    } 

을하지만 : 나는이 작업을 수행 할 때, 나는 인쇄 된 쿼리의 결과를 볼 수 있습니다

$line = mysql_fetch_array($result, MYSQL_ASSOC);

대신이 :

echo ($line[0] . " " . $line[1] . " " . $line[2]);

난 아무것도 표시되지 않습니다. 아무것도에게 할당하지 않습니다

왜 -

$values[] = $line[0]; // 실패 또한 나는 $ 선에서 값을 할당 할 수 없습니다? 그리고 내가 대신해야 할 일은 무엇입니까?

+0

이,'error_reporting은 모든 오류를 켜 해당 열 이름을 사용 [0]와 같은 인덱스 번호를 사용하여 (E_ALL)'. 정의되지 않은 배열 인덱스에 대한'E_NOTICE' 레벨 오류가 나타날 것입니다 – Phil

+0

mysql 쿼리의 결과가 0 인덱스 배열이 아니라 키가 DB 테이블의 통칭 이름입니다 – Qchmqs

답변

5

레코드를 연관 항목으로 검색하도록 지명되었습니다 (MYSQL_ASSOC). 즉, $line 배열에 숫자 인덱스가 포함되지 않습니다.

숫자 배열 만 사용하려는 경우 mysql_fetch_row()을 사용하십시오.

연관 단지, mysql_fetch_assoc()

또한 그러나 이것은 당신이 당신의 foreach 루프에서 중복 항목을 줄 것이다 mysql_fetch_array($result, MYSQL_BOTH)를 사용하여 혼합 숫자와 연관 배열을 검색 할 수 있습니다.

0

당신은 행을 배열로 가져 오려고한다고 말했고 $ line은 0- 인덱스 배열이 아니며 연관 배열입니다. 즉, 배열의 키가 테이블의 열 이름입니다 (s)를 선택했습니다.

var_dump($line); // Will display the keys 
0

시도 :

echo ($line["id"] . " " . $line["id"] . " " . $line["id"]); 

그래서 대신에 당신은 당신이 개발하는 동안

+1

[mysql_fetch_object ()'] (http://php.net/manual/en/function.mysql-fetch-object.php) 또는 연관 배열을'(객체)'에 캐스팅하여 보겠습니다. – Phil

+0

바보 같은 임 비트가 지금 혼란 스러워요. –