Maison > Article > base de données > Pourquoi est-ce que j'obtiens des valeurs en double lors de l'utilisation de 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!