2010-01-24 71 views
4

我需要通過一堆動態生成的字段進行迭代,但這不起作用:

$population_density = $_POST['$current_location_id']; 

我的位置以及它們的人口列表在一頁上;我需要做到這一點,所以你可以一次更新很多。所以我讓字段名稱動態地對應於location_id。提交帖子時,我需要像這樣迭代它們,但似乎你不能在帖子中放置一個變量。

for ($y_count = 1 ; $y_count <= $zone_height; $y_count++) { 
    for ($x_count = 1 ; $x_count <= $zone_width; $x_count++) { 
     $result = mysql_query("SELECT * FROM locations WHERE location_zone='$zone_id' AND x_location='$x_count' AND y_location='$y_count' "); 
     $current_location = mysql_fetch_array($result); 
     $current_location_id = $current_location['ID']; 
     $population_density = $_POST['$current_location_id']; 
     $result = mysql_query("UPDATE locations SET population_density='$population_density' WHERE ID='$current_location_id' "); 
    } 
} 

是否可以在$ _POST []中放置一個變量?如果不是,我應該如何去更新動態生成的字段?

回答

1

使用它沒有單引號:

$_POST[$current_location_id] 

現在的$current_location_id值作爲重點而不是字符串$current_location_id。您也可以直接使用$current_location['ID']

$_POST[$current_location['ID']] 

即使在您的查詢:

for ($y_count = 1 ; $y_count <= $zone_height; $y_count++) { 
    for ($x_count = 1 ; $x_count <= $zone_width; $x_count++) { 
     $result = mysql_query("SELECT * FROM locations WHERE location_zone='$zone_id' AND x_location='$x_count' AND y_location='$y_count' "); 
     $current_location = mysql_fetch_array($result); 
     $result = mysql_query("UPDATE locations SET population_density='".$_POST[$current_location['ID']]."' WHERE ID='".$current_location['ID']."' "); 
    } 
} 
2
$_POST[$var] or $_POST["cst_$var"] 
0

單引號禁止變量代換一個字符串;要麼使用雙引號,要麼完全忽略它們。

0

$ POST [ 「CST $ VAR」] - cst_是$ var代表一個字符串

的corect答案是: $ POST [ 'CST' 是$ var]