>  기사  >  데이터 베이스  >  mysql_fetch_array를 사용할 때 중복된 값을 얻는 이유는 무엇입니까?

mysql_fetch_array를 사용할 때 중복된 값을 얻는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-02 05:01:30766검색

Why Do I Get Duplicate Values When Using mysql_fetch_array?

mysql_fetch_array에서 반환된 배열의 중복 값

질문:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.