Maison  >  Article  >  base de données  >  Pourquoi est-ce que j'obtiens des valeurs en double lors de l'utilisation de mysql_fetch_array ?

Pourquoi est-ce que j'obtiens des valeurs en double lors de l'utilisation de mysql_fetch_array ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 05:01:30797parcourir

Why Do I Get Duplicate Values When Using mysql_fetch_array?

Valeurs en double dans le tableau renvoyées par mysql_fetch_array

Question :

Lors de la récupération de données à partir d'une table MySQL à l'aide de mysql_fetch_array, doublez des valeurs sont renvoyées, ce qui entraîne une sortie en double lors d'une itération dans le tableau.

Exemple :

<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>

Pourquoi cela se produit-il ?

La fonction mysql_fetch_array renvoie un tableau qui contient à la fois des index associatifs et numériques par défaut. Cela signifie que les noms de colonnes et les indices de colonnes (0, 1, 2, etc.) sont utilisés comme clés.

Solution :

Pour éviter les valeurs en double , utilisez le deuxième paramètre de mysql_fetch_array pour spécifier le type d'indexation souhaité. Vous pouvez choisir entre des index numériques uniquement, des index associatifs uniquement, ou les deux.

<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>

Vous pouvez également utiliser les fonctions mysql_fetch_row et mysql_fetch_assoc pour récupérer des données avec uniquement des index numériques ou associatifs, respectivement.

<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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn