2011-12-03 35 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); 
} 

我的理由是,雖然循環遍歷所有的行,$海峽並沒有改變,以反映另一行,因此不斷給儘管它的行值不同....相同的值?

希望有人能幫助我。謝謝。

回答

3

你的函數接受$row不過在機身上使用$i

+0

謝謝。對不起,遲到的回覆,服務器的下降,所以不能實現這一變化,直到現在。循環現在每行返回適當的值。沒有得到另一個錯誤,但這是一個不同的問題,所以會提出一個新的問題。謝謝你的幫助。 – Yus

0

嘗試在函數的末尾添加回報。
請考慮@Sylverdrag建議。

+0

有回報。問題是他傳遞了一個$ row變量,但試圖使用一個不存在的$ i變量。 – Sylverdrag

+0

是的,你是對的! –