Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库值显示两次_Php - Fatal编程技术网

Php 数据库值显示两次

Php 数据库值显示两次,php,Php,这是我从数据库中检索值的代码 $query = "SELECT * FROM t_contact WHERE id = {$project_details_id} LIMIT 1"; $all_post_info1 = mysql_query($query, $connection); confirm_query($all_post_info1); $project_details = mysql_fetch_ar

这是我从数据库中检索值的代码

    $query = "SELECT * FROM t_contact
                      WHERE id = {$project_details_id} LIMIT 1";
     $all_post_info1 = mysql_query($query, $connection);
     confirm_query($all_post_info1);
     $project_details = mysql_fetch_array(show_project_details($project_details_id));

     foreach ($project_details as $fieldname) {
        echo $fieldname . "</br>";
     }
每个字段有两次输出。在我的数据库中有27列,我得到54个输出。 例如,数据库中有name、email列,我的输出显示如下

name
name
email
email 
请告诉我这个代码有什么问题

通过使用MYSQL_BOTH(默认),您将获得一个包含关联索引和数字索引的数组

这是因为您的
$project\u details
实际上看起来像这样:

$project_details = array(
  [0] => 'name',
  [name] => 'name',
  [1] => 'email',
  [email] => 'email'
);

尝试在通话中指定MYSQL\u ASSOC。

而不是在通话时使用foreach。例如:

while($row = db_fetch_array($all_post_info1)) {
    echo $row[field_name];
}

希望它能帮助您。

默认情况下,
mysql\u fetch\u array()
以索引和关联格式返回键

使用
MYSQL\u ASSOC
参数仅获取关联版本:

$project_details = mysql_fetch_array(show_project_details($project_details_id), MYSQL_ASSOC);

习惯性的,我也会提醒你,<强> MySQL函数被禁止< /强>,你应该考虑使用例如./P>> P>改变这一行:

$project_details = mysql_fetch_array($project_details_id);
$project_details = mysql_fetch_array($project_details_id, MYSQL_ASSOC);
这一行:

$project_details = mysql_fetch_array($project_details_id);
$project_details = mysql_fetch_array($project_details_id, MYSQL_ASSOC);

尝试这样做:

$query = "SELECT * FROM t_contact
                        WHERE id = {$project_details_id} LIMIT 1";
$all_post_info1 = mysql_query($query, $connection);
confirm_query($all_post_info1);

while($data = mysql_fetch_assoc($all_post_info1))
{

print_r($data);

}

mysql_fetch_assoc将返回一个关联数组,这意味着一个数组,其中键与查询中的字段相关联。mysql_fetch_数组将返回一个包含字段和数字键值的数组,因此返回双变量。我很少使用mysql\u fetch\u数组,几乎在所有情况下,mysql\u fetch\u assoc都是一个不错的选择。

您遗漏了一些调试所需的信息。请发布
confirm\u query()
show\u project\u details()
的代码。
$project\u details
mysql\u fetch\u数组($project\u details\u id,mysql\u ASSOC)的大小是多少;默认情况下,将同时返回关联键和枚举键