5

そのため、フォームやリストなどを動的に作成できる特注のCMSがあります。データベース内の承認テーブルと競合する、リストのデータを取得する問題に気づきました。

問題は、データを含むテーブルのフィールド名が承認テーブルのフィールド名と同じである場合、i mysql_fetch_arrayが配列の値を返すと、1つのフィールド名しか返さないことです。

だから返されるものの例

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エイリアスを[idASapprovals.id]として

[idASaffiliates.id]としてのアフィリエイトテーブル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 に答える