2014-04-11 60 views
1

我有我基本上循環通過創建基於列和數據的動態形式的表格,即:通過POST數據循環更新它的數據庫中的值

gameID -> 1 
gameName -> my game name 
gameTitle -> game title 

此表將可能增長在未來,所以我產生的形式動態即:

while ($row = $query->fetch(PDO::FETCH_ASSOC)){ 

    foreach($row as $key => $value){ 

     echo "<div class='formlabel floatL'> $key </div> <div class='formfield floatL'><input type='text' name='$key' value='$value' size='100' /></div> <div class='clear'></div><br />"; 

    } 

} 

但是我不知道如何循環通過此表單域動態。我有這到目前爲止,但不知道如何去完成它:

if ($_POST["updatesettings"] <> ""){ 

     foreach($_POST as $key => $value){ 

      // query 
      $query = $db->prepare(" UPDATE `games` SET `settingValue`= :value WHERE `settingCode` = :key LIMIT 0,1 "); 


      // bind parameters - avoids SQL injection 
      $query->bindValue(':value', stripslashes($value)); 

      // try... if not catch exception 
      try { 
       // run the query 
       //$query->execute(); 

      } 
      catch (PDOException $e){ 
      } 

     } 

} 
+0

http://stackoverflow.com/tags/pdo/info near bottom –

回答

-1

所以,它聽起來像問題是你可能有這樣$key你不一些任意值,知道如何讓所有的人。

我會建議在表單輸入中使用數組訪問表示法,以便您有更好的方法來知道從哪裏獲取關鍵數據。該inoput可能是這樣的:

<input type='text' name='keys[$key]' value='$value' size='100' /> 

這組中的所有這些投入彙集成$_POST['keys']。所以你可以像這樣循環遍歷它們:

foreach($_POST['keys'] as $key => $value) { 
    // make DB update 
}