mysql:8286
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Fri, 17 Oct 2003 18:39:48 +0900
Subject: [mysql 08286] Re: SELECT JOIN した結果の PHP mysql 関数からの取り出しについて
とみたです。 On Fri, 17 Oct 2003 17:54:40 +0900 yuji koga <koga-y@xxxxxxxxxx> wrote: > DBからPHPに渡される配列インデックスは、SQL上でSELECTしたフィールド名 > (もしくはSQL上で改名した名前)で返されますので、基本的には無理と > 考えた方が良いと思います。 C API では結果レコードのフィールド毎にテーブル名を取り出す方法がありま す。だから、PHP にそのようなインタフェースがないのが問題なのかな。 PHP はあまり詳しくないんですが、何故か手元にある本を見ると C と同じ API があるようなので、それを使って mysql_fetch_array() の代わりとなる ような独自の関数を作ればよいのかも…。 mysql_fetch_row() で1レコードを取り出して、各フィールドについて mysql_fetch_field() でテーブル名とフィールド名を求めて、"." で結合して ハッシュのキーとする…という関数です。 私の怪しい PHP の知識で書くとこういう感じ…。 # 試してません。たぶん、このままでは動かないと思います (^^; $row = mysql_fetch_array($result) $hash = array() for ($i=0; $i<count($row); $i++) { $f = mysql_fetch_field($result, $i) $k = $f->table + "." + $f->name $hash[$k] = $row[$i] } -- とみたまさひろ <tommy@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp
8283 2003-10-17 17:31 [Hiroyasu TOBA <toba@] SELECT JOIN した結果の PHP mysql 関数からの取り出しについて 8284 2003-10-17 17:54 ┗[yuji koga <koga-y@xx] -> 8286 2003-10-17 18:39 ┗[とみたまさひろ <tomm] 8288 2003-10-17 19:07 ┣[yuji koga <koga-y@xx] 8308 2003-10-21 09:14 ┃┗[とみたまさひろ <tomm] 8295 2003-10-18 15:08 ┗[Hiroyasu TOBA <toba@] 8296 2003-10-18 15:20 ┗[Hiroyasu TOBA <toba@]