[前][次][番号順一覧][スレッド一覧]

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@]