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)的大小是多少;默认情况下,将同时返回关联键和枚举键