2011-12-03 12 views
1

Forループを使用してテーブルからすべての行を返します。それは各行を適切に通過しますが、次の行に移動しても同じ値を返し続けます。以下はForループは同じ値を返し続けます

コード:

function setLayer($result_set, $row){ 

    $str = "MyMap_".mb_convert_encoding(mssql_result($result_set, $i, 0),"UTF-8","SJIS")."_".mb_convert_encoding(mssql_result($result_set, $i, 1),"UTF-8","SJIS"); 
    return "".$str." = new OpenLayers.Layer.WMS(\"".$str."\",\"http://192.168.0.69/cgi-bin/mapserv.exe?map=C:/ms4w/Apache/htdocs/mapserver/data/toyama/toyama_mymap.map&service=WMS&SRS=EPSG:2449&VERSION=1.1.1&format=image/PNG&layers=".$str."\", {'layers': '".$str."'}, {isBaseLayer: false, visibility: false,opacity:0.5,alpha:true}); 
    map.addLayer(".$str.");\n\n"; 
} 

ループ:

for($i=0; $i<=$group_layer_row; $i++){ 
    echo setLayer($rs_group_layer, $i); 
} 

私の推論は、ループがすべての行を通過するものの、それは与え続けるので、$ strのは、別の行を反映するように変更しないことです行の値が異なっていても同じ値です。閉じる?

誰かがこれを手伝ってくれることを願っています。ありがとうございました。

答えて

3

あなたの機能は$rowを受け入れていますが$i

+0

ありがとうございました。遅く返答して申し訳ありませんが、サーバーはダウンしていますので、今までこの変更を実装できませんでした。ループは現在、行ごとに適切な値を返しています。別のエラーが発生しましたが、それはSQLのための別の質問ですので、新しい質問をしています。ご協力いただきありがとうございます。 – Yus

0

を使用し、本体に関数の最後にリターンを追加してください。
@Sylverdragの提案も考慮してください。

+0

リターンがあります。問題は、彼が$ row変数を渡しているが、存在しない$ i変数を使用しようとしていることです。 – Sylverdrag

+0

はい、あなたは正しいです! –

関連する問題