问题:
使用 mysql_fetch_array 从 MySQL 表中获取数据时,double返回值,导致迭代数组时出现重复输出。
示例:
<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>
为什么会发生这种情况?
mysql_fetch_array 函数默认返回一个包含关联索引和数字索引的数组。这意味着列名和列索引(0、1、2等)都用作键。
解决方案:
防止重复值,使用 mysql_fetch_array 的第二个参数来指定您想要哪种类型的索引。您可以选择仅数字索引、仅关联索引或两者。
<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>
或者,您可以使用 mysql_fetch_row 和 mysql_fetch_assoc 函数分别获取仅包含数字索引或关联索引的数据。
<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>
以上是为什么使用 mysql_fetch_array 时会得到重复的值?的详细内容。更多信息请关注PHP中文网其他相关文章!