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

mysql:8295

From: Hiroyasu TOBA <Hiroyasu TOBA <toba@xxxxxxxxxx>>
Date: Sat, 18 Oct 2003 15:08:39 +0900
Subject: [mysql 08295] Re: SELECT JOIN  した結果の PHP mysql 関数からの取り出しについて


 こんにちは、鳥羽です。

 古賀様、とみた様、早速のアドバイスありがとうございます。


とみたまさひろ wrote:

>とみたです。
>  
>
>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]
>	}
>  
>

  解決のヒント、どうもありがとうございます。
  早速、アドバイスどおり試してみました。
  こんな感じでうまくいきました。

$flag = 0;
 // レコード読み込みループ
while ($row =@mysql_fetch_array($result,MYSQL_ASSOC)) {
//  ハッシング?テーブル作成は 1回だけ
if( $flag == 0 ) {
$hash = array();
$v = array_values($row);
for( $i=0; $i<count($row); $i++ ) {
$f = mysql_fetch_field($result,$i);
$k = $f->table . "." . $f->name;
$hash[$k] = $i;
}
$flag = 1;
}
// 1要素配列がかえってくるので苦肉の策でarray_pop()
$table1_elm1 = array_pop( array_slice($row,$hash["Table1.Element1"],1)) ;
$table1_elm1 = array_pop( array_slice($row,$hash["Table5.Element6"],1));
.
.
. とかです。

 テーブル作成の部分がごちゃごちゃするので、関数化しようかと思います。
 アクセスに行く部分は、特にきにならないので、そのまま、、、。
 直接、配列内の要素を順番指定でアクセスできると、効率的なのですが、、、

yuji koga wrote:

>お世話になります。古賀です。
>  
>
>異なるテーブル間のリレーションならば、
>とみた様の解決策が良いと思います。
>
>#とりあえず、異なるテーブル間で同じフィールド名を使わない、
>#というのが一番の解決策なのかも知れません。
>  
>
  なるほど、確かに、重ならないフィールド名ならば、素のままでアクセス
 できますね。(知らなかった、、、。)

 とみたさん、古賀さん、どうもありがとうございました。

 それでは、失礼します。

----

 鳥羽 弘康



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

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