循环POST数据以更新它';s在数据库中的值


Looping through POST data to update it's value in a database

我有一个表,我基本上是循环使用它来创建一个基于列和数据的动态表单,即:

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){
            }
        }
}

所以听起来问题是$key可能有一些任意值,所以你没有;I don’我不知道怎样把它们都弄到手。

我建议在表单输入中使用数组访问表示法,这样您就可以更好地了解从哪里获取密钥数据。Inout可能看起来像这样:

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

这将把所有这些输入组合到CCD_ 2中。所以你可以这样循环浏览它们:

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