Maison >base de données >tutoriel mysql >Pourquoi mon tableau de récupération MySQLi entraîne-t-il une sortie doublée ?
L'exécution du code suivant :
<code class="php">$table = get_personel_table(1); function get_personel_table($id) { global $connection; $query = "SELECT * FROM employees WHERE id=$id ORDER BY id ASC"; $query_result = mysqli_query($connection, $query); confirm_query($query_result); $query_result_array = mysqli_fetch_array($query_result); return $query_result_array; // returns associative array! } foreach($table as $table_var) { echo "<td>$table_var</td>"; }</code>
aboutit à sortie doublée, telle que :
1 1 1 1 jordan jordan 9108121544 9108121544 testEmail testEmail testAddress testAddress testCounty testCounty
Le comportement par défaut de mysqli_fetch_array est de renvoyer des index associatifs et numériques pour la ligne de résultat. Ceci n’est pas souhaitable dans la situation donnée. Pour limiter les clés renvoyées, vous pouvez utiliser le deuxième paramètre de la fonction :
<code class="php">$query_result_array = mysqli_fetch_array($query_result, MYSQLI_NUM); // numeric keys only $query_result_array = mysqli_fetch_array($query_result, MYSQLI_ASSOC); // associative keys only</code>
Alternativement, vous pouvez utiliser les fonctions suivantes :
<code class="php">$query_result_array = mysqli_fetch_row($query_result); // numeric keys only $query_result_array = mysqli_fetch_assoc($query_result); // associative keys only</code>
En utilisant uniquement des touches numériques ou associatives , vous pouvez éliminer la duplication des données dans la sortie.
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!