질문:
mysql_fetch_array를 사용하여 MySQL 테이블에서 데이터를 가져올 때 double 값이 반환되어 배열을 반복할 때 중복된 출력이 발생합니다.
예:
<code class="php"><?php $table = get_personel_table(1); function get_personel_table($id) { global $connection; $query = "SELECT * "; $query .= "FROM employees "; $query .= "WHERE id=" . $id . " "; $query .= "ORDER BY id ASC"; $query_result = mysql_query( $query , $connection ); confirm_query($query_result); $query_result_array = mysql_fetch_array($query_result); return $query_result_array; // returns associative array!; } foreach($table as $table_var) { echo "<td>" . $table_var . "</td>"; } // Output: // "1 1 1 1 jordan jordan 9108121544 9108121544 testEmail testEmail testAddress testAddress testCounty testCounty"</code>
왜 이런 일이 발생합니까?
mysql_fetch_array 함수는 기본적으로 연관 인덱스와 숫자 인덱스를 모두 포함하는 배열을 반환합니다. 이는 열 이름과 열 인덱스(0, 1, 2 등)가 모두 키로 사용된다는 의미입니다.
해결책:
중복 값을 방지하려면 , mysql_fetch_array의 두 번째 매개변수를 사용하여 원하는 인덱싱 유형을 지정합니다. 숫자 인덱스만, 연관 인덱스만 또는 둘 다를 선택할 수 있습니다.
<code class="php">// Numerical indexes only $query_result_array = mysql_fetch_array($query_result, MYSQL_NUM); // Associative indexes only $query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC); </code>
또는 mysql_fetch_row 및 mysql_fetch_assoc 함수를 사용하여 각각 숫자 또는 연관 인덱스만으로 데이터를 가져올 수 있습니다.
<code class="php">// Numerical indexes only $query_result_array = mysql_fetch_row($query_result); // Associative indexes only $query_result_array = mysql_fetch_assoc($query_result); </code>
위 내용은 mysql_fetch_array를 사용할 때 중복된 값을 얻는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!