Maison > base de données > tutoriel mysql > 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
Libérer: 2024-11-02 05:01:30
original
892 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal