5

所以我有一个定制的 CMS,它允许动态创建表单和列表等。我注意到它抓取列表数据的问题,这与数据库中的批准表冲突。

问题是,如果包含数据的表的字段名称与批准表中的字段名称相同,那么当我 mysql_fetch_array 并返回数组中的值时,它只会返回一个字段名称

所以一个返回的例子

Array
(
    [id] => 1
)

理想情况下,我希望它返回为

Array
(
    [approvals.id] => 1
    [affiliates.id] => 2
)

那么我怎样才能让它在结果数组的表名前加上前缀来抵消称为同一事物的字段名呢?我不想更改字段名称,因为它非常嵌入。

4

4 回答 4

4

通常在 SQL 语句中使用别名:

SELECT table1.id as t1_id, table2.id as t2_id FROM .....

然后,当您进行获取时,您将以这种方式访问​​它:

echo $row['t1_id'];
于 2012-11-21T10:27:08.513 回答
1

使用 mysql 别名

审批表 ID 别名为 [id ASapprovals.id]

附属表 id 别名为 [id AS associates.id]

于 2012-11-21T10:27:08.860 回答
1

在查询中使用别名:

SELECT approvals.id AS approvals_id, affiliates.id AS affiliates_id ...

然后关联数组将包含:

echo $row['approvals_id'];
于 2012-11-21T10:27:26.597 回答
1

问题是,如果包含数据的表的字段名称与批准表中的字段名称相同

您必须使用不同的别名来别名这些字段的名称。就像是:

SELECT 
   approvals.id approvalsid,
   affiliates.id affiliatesid
    ...
FROM
...
于 2012-11-21T10:27:52.227 回答