为什么使用 mysql_fetch_array 时会得到重复的值?

Mary-Kate Olsen
发布: 2024-11-02 05:01:30
原创
765 人浏览过

Why Do I Get Duplicate Values When Using mysql_fetch_array?

mysql_fetch_array 返回的数组中存在重复值

问题:

使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!