[PHP-users 17824]Re: DB取得配列をカスタマイズしたい。

しょうなり[ml] ml @ shiftra.jp
2003年 9月 11日 (木) 22:30:15 JST


しょうなりです。


aiko さんは書きました:
>配列に関して質問です。
>DBから取得したデータが以下の配列に入っているとします。
>
>$aDbData[0]["A_id"]="A001";
>$aDbData[0]["B_id"]="B001";
>
>$aDbData[1]["A_id"]="A001";
>$aDbData[1]["B_id"]="B002";
>
>$aDbData[2]["A_id"]="A002";
>$aDbData[2]["B_id"]="B003";
>
>$aDbData[3]["A_id"]="A002";
>$aDbData[3]["B_id"]="B004";
>
>$aDbData[4]["A_id"]="A003";
>$aDbData[4]["B_id"]="B005";
>
>$aDbData[4]["A_id"]="A003";
>$aDbData[4]["B_id"]="B006";
>
>
>これをJavaScriptにて
>2つのセレクトボックスで表示させたいと思っております。

>(略)

配列の処理は(僕的には)基本中の基本だと思っていますので、
じっくり何度もやって慣れるようにしたほうがいいと思いますよ。


きしかわさんが提示してくれたサンプルスクリプトを
そのまま実行すると、

---(ここから)
	new Proj( "B001 " )
	new Proj( "B003 " )
 ,	new Proj( "B002 " )
	new Proj( "B006 " )
 ,	new Proj( "B004 " )
---(ここまで)

という結果が返ってきますが、これは

>そのために、JavaScriptにて
>var aAData=new Array();
>aAData[0]=new Array("B001" , "B002" );// A001配列
>aAData[1]=new Array("B003" , "B004" );// A002配列
>aAData[2]=new Array("B005" , "B006" );// A003配列
>の様な配列を作成する必要があります。

と全然違いますね。

# ちなみに、上の JavaScriptを実行したら、生成される配列は
# aAData[0][0] = "B001"
# aAData[0][1] = "B002"
# などですが、大丈夫ですか?
# aAData[0]["B_id"] = "B001"
# aAData[1]["B_id"] = "B002"
# じゃなくて?


まず期待通りに動作する JavaScriptを書くところから始めましょう。
それを PHPで1行ずつ書いていきます。
まずはforeachなどループ文を使わずに書いてみてください。
そうすると「こことここは一緒だからループ文を使えばできるな」と
いうことに気付くはずです。

そういう発見が3・4回あればきっとそのルーチンは完成するでしょう。
始めからうまくやろうとするので、混乱するのだと思います。

とりあえず一杯やって一眠りして頭をリフレッシュさせたら、
頑張ってみてください。


-- 
	しょうなり@信州 肥田昌也
		Email(ML): ml @ shiftra.jp


PHP-users メーリングリストの案内