Maison > Article > base de données > Pourquoi mon « mysql_fetch_array » renvoie-t-il des données en double ?
Résultats doubles avec mysql_fetch_array
Dans le code fourni, vous exécutez une requête pour récupérer les données du personnel en fonction d'un identifiant et renvoyez le résultat sous la forme un tableau associatif. Cependant, lorsque vous parcourez le tableau et imprimez ses valeurs, vous rencontrez des données en double.
En effet, mysql_fetch_array récupère à la fois les clés associatives et numériques par défaut. Chaque paire clé-valeur est affichée deux fois, ce qui conduit à la sortie doublée que vous observez.
Solution :
Pour récupérer uniquement les clés associatives, utilisez mysql_fetch_assoc au lieu de mysql_fetch_array. En faisant cela, vous limiterez le tableau renvoyé à contenir uniquement des clés associatives, faisant correspondre les noms de colonnes aux valeurs respectives. Cela résoudra le problème de double sortie :
<code class="php">$query_result_array = mysql_fetch_assoc($query_result);</code>
Vous pouvez également spécifier le deuxième paramètre de mysql_fetch_array pour récupérer uniquement des clés associatives ou numériques :
<code class="php">$query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC); // associative keys only $query_result_array = mysql_fetch_array($query_result, MYSQL_NUM); // numeric keys only</code>
En utilisant mysql_fetch_assoc ou en définissant le deuxième paramètre de manière appropriée, vous pouvez éliminer les données en double et obtenir une seule instance de chaque valeur dans le tableau associatif.
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!